Re: [Bug #12608] 2.6.29-rc powerpc G5 Xorg legacy_mem regression

Benjamin Herrenschmidt
2009-02-05T23:57:52Z

> No, sorry, but I just took a look and as long as the various callers can
> handle it (haven't checked), this patch would work.
>
> > The second problem is that if I just don't expose the legacy_mem file,
> > then X has no way to know whether the kernel doesn't support the
> > interface or whether the HW doesn't support legacy memory access. So X
> > will fallback to whacking /dev/mem which is even more bogus. At least
> > that's what I remember from last I looked at that part of X code.
> >
> > It should be a trivial fix on X side tho.
>
> One option there would be to provide the file but just use anonymous memory to
> back it. X will happily think it's messing with legacy VGA memory, but it
> shouldn't matter that it's not actually affecting hw.

That might be the best approach ... I'll have a look.

Ben.

> diff --git a/hw/xfree86/os-support/bus/linuxPci.c
> b/hw/xfree86/os-support/bus/li
> index 263fd8f..5d2da32 100644
> --- a/hw/xfree86/os-support/bus/linuxPci.c
> +++ b/hw/xfree86/os-support/bus/linuxPci.c
> @@ -484,8 +484,9 @@ xf86MapDomainMemory(int ScreenNum, int Flags, struct
> pci_dev
> if (fd >= 0)
> close(fd);
> if (addr == NULL || addr == MAP_FAILED) {
> - perror("mmap failure");
> - FatalError("xf86MapDomainMem(): mmap() failure\n");
> + xf86Msg(X_WARNING, "xf86MapDomainMem(): mmap() failure: %s\n",
> + strerror(errno));
> + return NULL;
> }
> return addr;
> }
>
>