xorg-x11-server/pci-legacy-mem-fallback.diff
Stefan Dirsch 7e6a980b1f Accepting request 35298 from home:oertel:branches:openSUSE:Factory
Copy from home:oertel:branches:openSUSE:Factory/xorg-x11-server via accept of submit request 35298 revision 8.
Request was accepted with message:
reviewed ok.

OBS-URL: https://build.opensuse.org/request/show/35298
OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xorg-x11-server?expand=0&rev=229
2010-03-20 02:42:15 +00:00

22 lines
706 B
Diff

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");
}