Re: More info for DSM w/r/t sunffb on 2.6.15-rc6

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

 



From: "Michael Bishop" <[email protected]>
Date: Fri, 23 Dec 2005 11:23:36 -0500

> Bad pte = 1fa00600a88, process = X, vm_flags = 184473, vaddr = 7001e000
> Call Trace:

Strange, I thought we'd fixed this.

Aww crap....

Linus, X.org is doing a MAP_PRIVATE mmap() of these discontiguous
I/O mappings of the sparc frame buffer device it seems.  So the
MAP_SHARED check in is_cow_mapping() doesn't pass.

Michael, does X.org work properly with your FFB card with 2.6.14 by
chance?

I really haven't used X.org on anything other than an ATI Radeon on
Sparc boxes, so it's highly possible that SunFFB support in X.org has
deteriorated into a non-working state due to not being looked after by
anyone.

Back to the MAP_SHARED issue, the culprit code in X.org can be fixed
but I know that this thing has been coded this way for years.  It
goes like this (hw/xfree86/os-support/bus/Sbus.c:xf86MapSbusMem()):

    ret = (pointer) mmap (NULL, len, PROT_READ | PROT_WRITE, MAP_PRIVATE,
                          psdp->fd, off);
    if (ret == (pointer) -1) {
        ret = (pointer) mmap (NULL, len, PROT_READ | PROT_WRITE, MAP_SHARED,
                              psdp->fd, off);
    }
    if (ret == (pointer) -1)
        return NULL;

and that should be fixed to just be:

    ret = (pointer) mmap (NULL, len, PROT_READ | PROT_WRITE, MAP_SHARED,
                          psdp->fd, off);
    if (ret == (pointer) -1)
        return NULL;

Ie. use MAP_SHARED unconditionally.
-
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