Messages in this thread | | | Date | Sun, 27 Apr 2008 15:44:28 -0700 | From | "H. Peter Anvin" <> | Subject | Re: [patch] x86, voyager: fix ioremap_nocache() |
| |
Jeff Garzik wrote: > > Isn't there Yet More Breakage in lib/iomap.c, given these new semantics? > > if (flags & IORESOURCE_MEM) { > if (flags & IORESOURCE_CACHEABLE) > return ioremap(start, len); > return ioremap_nocache(start, len); > } > > Any driver using pci_iomap() (libata, and others) is affected. > > I disagree with this semantics change. A number of code places _and > drivers_ GET IT RIGHT, and these are all broken now? >
They don't, though. They rely on the MTRRs to get it right for them, and the MTRRs will say "uncached" in nearly all cases.
Consider the case above: you would have gotten the same result *regardless*, because the MTRRs would not have made the memory cacheable. Yes, it's broken, but it was broken before as well.
-hpa
| |