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

From: H. Peter Anvin
Date: Sun Apr 27 2008 - 18:45:06 EST


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
--
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/