2011/1/5 James Bottomley <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx>: >> >> No, we really can't do that. Most of the time, the kmap() is the only >> way we access the page anyway, so flushing things would just be >> stupid. Why waste time and energy on doing something pointless? > > It's hardly pointless. The kmap sets up an inequivalent alias in the > cache. NO IT DOES NOT. Stop arguing, when you are so wrong. kmap() does not create any aliases. For low-memory, it just returns the physical address. No alias. And for high memory, there is no equivalent low memory address to alias _with_. Now, when you actually mix multiple kmap's and you have a virtually based cache, then the kmap's obviously need to flush that particular page when switching between each other. But that has nothing to do with the actual page being kmap'ed, it's entirely an internal issue about the particular virtual memory area being re-used. And ARM (and any other virtually based CPU) already does that in __kunmap_atomic(). But notice the case of the low-mem. And understand that you are WRONG about the "inequivalent alias" thing. So I repeat: this has absolutely *NOTHING* to do with kmap(). Stop blathering. It's _purely_ an issue of vm_map_ram(). Nothing else. Linus -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html