Re: [patch] x86, voyager: fix ioremap_nocache()

From: Arjan van de Ven
Date: Sun Apr 27 2008 - 19:01:52 EST


On Sun, 27 Apr 2008 15:46:20 -0700 (PDT)
David Miller <davem@xxxxxxxxxxxxx> wrote:

> From: Jeff Garzik <jeff@xxxxxxxxxx>
> Date: Sun, 27 Apr 2008 18:39:24 -0400
>
> > I disagree with this semantics change. A number of code places
> > _and drivers_ GET IT RIGHT, and these are all broken now?
>
> [ Note, James's patch that you quoted is about mapping DMA
> memory, in dma_declare_coherent_memory(), rather than devices.
> But I know what you are trying to talk about Jeff. :-) ]
>
> Wrt. ioremap() semanics, it is important to realize that if
> the implementation of this on x86 has been giving non-cached
> I/O mappings out up until recently, you can expect that there
> are hundreds of drivers that might now be broken.

it's even worse than that.
99% of the time it gave out uncached memory, but if the bios was iffy,
it would suddenly give out something else.

The changes to ioremap() recently turned that into "100% uncached".
For me, that's the right (because safe) behavior, exactly for the
reason you mentioned: it's what happened in practice, and driver writers
would assume that to happen.

Anything except uncached would just be insanity as default.
(well the old "whatever mood the bios writer was in, usually uncached" is
effectively uncached except for weird behaving boxes)

--
If you want to reach me at my work email, use arjan@xxxxxxxxxxxxxxx
For development, discussion and tips for power savings,
visit http://www.lesswatts.org
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/