1
0
OBS User unknown 2009-05-28 21:20:47 +00:00 committed by Git OBS Bridge
parent e58d85adfd
commit cdf2e6549f
3 changed files with 76 additions and 1 deletions

View File

@ -0,0 +1,62 @@
diff --git a/hw/xfree86/common/xf86Bus.c b/hw/xfree86/common/xf86Bus.c
index b94d500..e624a17 100644
--- a/hw/xfree86/common/xf86Bus.c
+++ b/hw/xfree86/common/xf86Bus.c
@@ -429,7 +429,7 @@ xf86GetEntityInfo(int entityIndex)
EntityInfoPtr pEnt;
int i;
- if (entityIndex >= xf86NumEntities)
+ if (entityIndex < 0 || entityIndex >= xf86NumEntities)
return NULL;
pEnt = xnfcalloc(1,sizeof(EntityInfoRec));
@@ -1816,6 +1816,20 @@ checkRoutingForScreens(xf86State state)
xf86FreeResList(pResVGA);
}
+CARD16
+xf86BusesClaimed(void)
+{
+ CARD16 ret = 0;
+
+ if (pciSlotClaimed) ret |= 1 << BUS_PCI;
+ if (fbSlotClaimed) ret |= 1 << BUS_NONE;
+#if (defined(__sparc__) || defined(__sparc)) && !defined(__OpenBSD__)
+ if (sbusSlotClaimed) ret |= 1 << BUS_SBUS;
+#endif
+
+ return ret;
+}
+
/*
* xf86PostProbe() -- Allocate all non conflicting resources
* This function gets called by xf86Init().
diff --git a/hw/xfree86/common/xf86Priv.h b/hw/xfree86/common/xf86Priv.h
index 41ca8f5..80d4d00 100644
--- a/hw/xfree86/common/xf86Priv.h
+++ b/hw/xfree86/common/xf86Priv.h
@@ -123,6 +123,7 @@ extern RootWinPropPtr *xf86RegisteredPropertiesTable;
/* xf86Bus.c */
+CARD16 xf86BusesClaimed(void);
void xf86BusProbe(void);
void xf86ChangeBusIndex(int oldIndex, int newIndex);
void xf86AccessInit(void);
diff --git a/hw/xfree86/common/xf86fbBus.c b/hw/xfree86/common/xf86fbBus.c
index 102f6b1..1c99175 100644
--- a/hw/xfree86/common/xf86fbBus.c
+++ b/hw/xfree86/common/xf86fbBus.c
@@ -58,7 +58,10 @@ xf86ClaimFbSlot(DriverPtr drvp, int chipset, GDevPtr dev, Bool active)
{
EntityPtr p;
int num;
-
+
+ if (xf86BusesClaimed() & ~(1 << BUS_NONE))
+ return -1;
+
num = xf86AllocateEntity();
p = xf86Entities[num];
p->driver = drvp;

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Thu May 28 15:23:44 CEST 2009 - sndirsch@suse.de
- fbdev_fallback_fail_fix.diff
* fix fbdev fallback failure if no xorg.conf exists; fbdev driver
complained about required BusID (Egbert Eich)
-------------------------------------------------------------------
Thu Apr 30 15:04:14 CEST 2009 - sndirsch@suse.de

View File

@ -32,7 +32,7 @@ BuildRequires: libjpeg-devel
Url: http://xorg.freedesktop.org/
%define EXPERIMENTAL 0
Version: 7.4
Release: 36
Release: 37
License: GPL v2 or later; X11/MIT
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Group: System/X11/Servers/XF86_4
@ -111,6 +111,7 @@ Patch129: bug474071-fix1.diff
Patch130: radeonhd.diff
Patch131: commit-cadf65a.diff
Patch132: fixed-SYNC-extension-trigger-BlockHandler-test.diff
Patch140: fbdev_fallback_fail_fix.diff
%description
This package contains the X.Org Server.
@ -229,6 +230,7 @@ popd
cp $RPM_SOURCE_DIR/radeonhd.h hw/xfree86/common
%patch131 -p1
%patch132 -p1
%patch140 -p1
%build
pushd xorg-docs-*
@ -552,6 +554,10 @@ exit 0
%endif
%changelog
* Thu May 28 2009 sndirsch@suse.de
- fbdev_fallback_fail_fix.diff
* fix fbdev fallback failure if no xorg.conf exists; fbdev driver
complained about required BusID (Egbert Eich)
* Thu Apr 30 2009 sndirsch@suse.de
- instead of require do provide
INPUT_ABI_VERSION/VIDEO_ABI_VERSION to fix dependancy loop