From: Mikael Pettersson <mikpe@xxxxxxxx> Date: Mon, 3 Jul 2006 13:17:44 +0200 (MEST) > I.e., X did a simple PROT_READ|PROT_WRITE MAP_SHARED mmap() of > something PCI-related, presumably the ATI card. The protection > bits passed into io_remap_pfn_range() are 0x80...0788, while > pg_iobits are 0x80...0f8a. Current kernels obey the prot bits, > which, if I read things correctly, means that _PAGE_W_4U and > _PAGE_MODIFIED_4U don't get set any more. > > I guess something else in the kernel should have set those > bits before they got to io_remap_pfn_range()? The problem is with X, it should not be doing a MAP_SHARED mmap() of the framebuffer device. It should be using MAP_PRIVATE instead. The kernel is trying to provide copy-on-write semantics for the mapping, which doesn't make any sense for device registers. That's why the kernel isn't setting the writable or modified bits in the protection bitmask. Please fix the X server :) - To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html