File pci-legacy-mem-fallback.diff of Package xorg-x11-server.import4546

Index: hw/xfree86/os-support/bus/linuxPci.c
================================================================================
--- hw/xfree86/os-support/bus/linuxPci.c
+++ hw/xfree86/os-support/bus/linuxPci.c
@@ -397,6 +397,7 @@
      * 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
@@ -405,6 +406,8 @@
     if (fd >= 0)
 	close(fd);
     if (addr == NULL || addr == MAP_FAILED) {
+        if (errno == ENXIO)
+	    goto fallback;
 	perror("mmap failure");
 	FatalError("xf86MapDomainMem():  mmap() failure\n");
     }
openSUSE Build Service is sponsored by