--- hw/xfree86/os-support/bus/linuxPci.c +++ hw/xfree86/os-support/bus/linuxPci.c @@ -493,6 +493,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 @@ -501,6 +502,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"); }