rpms/xorg-x11-server/FC-5 xorg-x11-server-1.0.1-intel-bridge-fix.patch, NONE, 1.1

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Sun Apr 8 17:36:05 UTC 2007


Author: ajackson

Update of /cvs/dist/rpms/xorg-x11-server/FC-5
In directory cvs.devel.redhat.com:/tmp/cvs-serv892

Added Files:
	xorg-x11-server-1.0.1-intel-bridge-fix.patch 
Log Message:
* Sun Apr 08 2007 Adam Jackson <ajax at redhat.com> 1.0.1-9.fc5.7
- xserver-cve-2007-1003.patch: Fix CVE 2007-1003 in XC-MISC extension.
- xorg-x11-server-1.0.1-intel-bridge-fix.patch: Backport an Intel PCI bridge
  fix from FC6.


xorg-x11-server-1.0.1-intel-bridge-fix.patch:
 common/xf86pciBus.c             |   11 ++++++++++-
 os-support/shared/stdResource.c |    5 +++--
 2 files changed, 13 insertions(+), 3 deletions(-)

--- NEW FILE xorg-x11-server-1.0.1-intel-bridge-fix.patch ---
commit c339b221d3f59130a39e63d4cec3de7e3de95bf3
Author: Dave Airlie <airlied at linux.ie>
Date:   Wed Apr 26 11:31:07 2006 +0000

    Bug #6750: This patch detects Intel bridges that are transparent but aren't
        reported as such. From the Linux kernel fixups. This patch also removes
        the reserved BIOS area from the area to allocate resources in.

diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c
index e06dce5..af19b37 100644
--- a/hw/xfree86/common/xf86pciBus.c
+++ b/hw/xfree86/common/xf86pciBus.c
@@ -1774,7 +1774,16 @@ xf86GetPciBridgeInfo(void)
 		PciBus->brfunc = pcrp->funcnum;
 
 		PciBus->subclass = sub_class;
-		PciBus->interface = pcrp->pci_prog_if;
+
+		/* The Intel bridges don't report as transparent
+		   but guess what they are - from Linux kernel - airlied */
+		if ((pcrp->pci_vendor == PCI_VENDOR_INTEL) && 
+		   ((pcrp->pci_device & 0xff00) == 0x2400)) {
+			xf86MsgVerb(X_INFO, 3, "Intel Bridge workaround enabled\n");
+			PciBus->interface = PCI_IF_BRIDGE_PCI_SUBTRACTIVE;
+		} else {
+			PciBus->interface = pcrp->pci_prog_if;
+		}
 
 		if (pBusInfo && pBusInfo->funcs->pciControlBridge)
 		    PciBus->brcontrol =
diff --git a/hw/xfree86/os-support/shared/stdResource.c b/hw/xfree86/os-support/shared/stdResource.c
index 8599973..83ad0bb 100644
--- a/hw/xfree86/os-support/shared/stdResource.c
+++ b/hw/xfree86/os-support/shared/stdResource.c
@@ -150,10 +150,11 @@ #if 0
     ret = xf86AddResToList(ret, &range, -1);
     RANGE(range, 0xfee00000, 0xfeefffff, ResExcMemBlock | ResBios);
     ret = xf86AddResToList(ret, &range, -1);
-#endif
+    /* airlied - remove BIOS range it shouldn't be here 
+       this should use E820 - or THE OS */
     RANGE(range, 0xffe00000, 0xffffffff, ResExcMemBlock | ResBios);
     ret = xf86AddResToList(ret, &range, -1);
-
+#endif
     /*
      * Fallback would be to claim well known ports in the 0x0 - 0x3ff range
      * along with their sparse I/O aliases, but that's too imprecise.  Instead




More information about the fedora-cvs-commits mailing list