Index: hw/xfree86/os-support/bus/linuxPci.c =================================================================== --- hw/xfree86/os-support/bus/linuxPci.c.orig +++ hw/xfree86/os-support/bus/linuxPci.c @@ -476,6 +476,7 @@ xf86MapDomainMemory(int ScreenNum, int F * legacy_mem interface is unavailable. */ if ((Base > 1024*1024) || ((fd = linuxOpenLegacy(dev, "legacy_mem")) < 0)) + fallback: return linuxMapPci(ScreenNum, Flags, dev, Base, Size, PCIIOC_MMAP_IS_MEM); else @@ -484,6 +485,8 @@ xf86MapDomainMemory(int ScreenNum, int F if (fd >= 0) close(fd); if (addr == NULL || addr == MAP_FAILED) { + if (errno == ENXIO) + goto fallback; perror("mmap failure"); FatalError("xf86MapDomainMem(): mmap() failure\n"); }