2009-08-04 21:52:16 +02:00
|
|
|
Index: hw/xfree86/os-support/bus/linuxPci.c
|
2010-03-20 03:42:15 +01:00
|
|
|
================================================================================
|
|
|
|
--- hw/xfree86/os-support/bus/linuxPci.c
|
2009-02-06 16:48:49 +01:00
|
|
|
+++ hw/xfree86/os-support/bus/linuxPci.c
|
2010-03-20 03:42:15 +01:00
|
|
|
@@ -397,6 +397,7 @@
|
2009-02-06 16:48:49 +01:00
|
|
|
* 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
|
2010-03-20 03:42:15 +01:00
|
|
|
@@ -405,6 +406,8 @@
|
2009-02-06 16:48:49 +01:00
|
|
|
if (fd >= 0)
|
|
|
|
close(fd);
|
|
|
|
if (addr == NULL || addr == MAP_FAILED) {
|
|
|
|
+ if (errno == ENXIO)
|
|
|
|
+ goto fallback;
|
|
|
|
perror("mmap failure");
|
|
|
|
FatalError("xf86MapDomainMem(): mmap() failure\n");
|
|
|
|
}
|