Re: [BUG sparc64] 2.6.16-git6 broke X11 on Ultra5 with ATI Mach64

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Mikael Pettersson <[email protected]>
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 linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux