Accepting request 22138 from X11:XOrg

Copy from X11:XOrg/xorg-x11-server based on submit request 22138 from user sndirsch

OBS-URL: https://build.opensuse.org/request/show/22138
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/xorg-x11-server?expand=0&rev=146
This commit is contained in:
OBS User autobuild 2009-10-12 10:15:18 +00:00 committed by Git OBS Bridge
parent b8b5a4fbcb
commit e2ca29cba8
5 changed files with 134 additions and 3 deletions

View File

@ -0,0 +1,75 @@
From 35540106538b24ca1765e752fe9d6efc968a88fa Mon Sep 17 00:00:00 2001
From: Egbert Eich <eich@linux-p1mv.site>
Date: Wed, 7 Oct 2009 16:31:44 +0200
Subject: [PATCH] Check harder for primary PCI device.
Primary PCI devices are identified by checking for an 'PCIINFOCLASSES'
device which is VGA and has access to the memory bars enabled.
If there should be more than one device for which this is true
redo the check and also check if IO resoures are also enabled,
if this still doesn't turn up a unique result also check for
the presence of a BIOS rom.
---
hw/xfree86/common/xf86pciBus.c | 46 +++++++++++++++++++++++++++++++++++++--
1 files changed, 43 insertions(+), 3 deletions(-)
diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c
index 25b553b..18b9782 100644
--- a/hw/xfree86/common/xf86pciBus.c
+++ b/hw/xfree86/common/xf86pciBus.c
@@ -390,9 +390,49 @@ xf86PciProbe(void)
primaryBus.type = BUS_PCI;
primaryBus.id.pci = info;
} else {
- xf86Msg(X_NOTICE,
- "More than one possible primary device found\n");
- primaryBus.type ^= (BusType)(-1);
+ /*
+ * Ok, we found more than one possible primary device with this heuristic
+ * Now also check if IO is enabled.
+ */
+ int j;
+
+ primaryBus.type = BUS_NONE;
+ for (j = 0; j < num; j++) {
+ info = xf86PciVideoInfo[j];
+ pci_device_cfg_read_u16(info, & command, 4);
+
+ if ((command & PCI_CMD_MEM_ENABLE)
+ && (command & PCI_CMD_IO_ENABLE)
+ && (IS_VGA(info->device_class))) {
+ if (primaryBus.type == BUS_NONE) {
+ primaryBus.type = BUS_PCI;
+ primaryBus.id.pci = info;
+ } else {
+ primaryBus.type = BUS_NONE;
+ for (j = 0; j < num; j++) {
+ info = xf86PciVideoInfo[j];
+ pci_device_cfg_read_u16(info, & command, 4);
+
+ if ((command & PCI_CMD_MEM_ENABLE)
+ && (command & PCI_CMD_IO_ENABLE)
+ && (IS_VGA(info->device_class))
+ && info->rom_size) {
+ if (primaryBus.type == BUS_NONE) {
+ primaryBus.type = BUS_PCI;
+ primaryBus.id.pci = info;
+ } else {
+ xf86Msg(X_NOTICE,
+ "More than one possible primary device found\n");
+ primaryBus.type ^= (BusType)(-1);
+ break;
+ }
+ }
+ }
+ break;
+ }
+ }
+ }
+ break;
}
}
}
--
1.6.4.2

View File

@ -0,0 +1,26 @@
From 5ed1510176b870fd6208e2f8561880c4abe6637d Mon Sep 17 00:00:00 2001
From: Egbert Eich <eich@linux-p1mv.site>
Date: Thu, 8 Oct 2009 12:40:55 +0200
Subject: [PATCH] Fix segfault when killing X with ctrl-alt-backspace.
The damage structure for the cursor is not deregistered before deallocation,
causing a subsequent DamageUnregister () to segfault.
---
mi/misprite.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/mi/misprite.c b/mi/misprite.c
index 692e6c9..c368928 100644
--- a/mi/misprite.c
+++ b/mi/misprite.c
@@ -313,6 +313,7 @@ miSpriteCloseScreen (int i, ScreenPtr pScreen)
pScreen->InstallColormap = pScreenPriv->InstallColormap;
pScreen->StoreColors = pScreenPriv->StoreColors;
+ miSpriteDisableDamage(pScreen, pScreenPriv);
DamageDestroy (pScreenPriv->pDamage);
xfree ((pointer) pScreenPriv);
--
1.6.4.2

View File

@ -1,3 +1,29 @@
-------------------------------------------------------------------
Fri Oct 9 03:38:53 CEST 2009 - sndirsch@suse.de
- since we no longer use xorg.conf make ZapWarning the default
(bnc #545590)
-------------------------------------------------------------------
Thu Oct 8 13:43:20 CEST 2009 - eich@suse.de
- Fix segfault when killing X with ctrl-alt-backspace. (bnc #545363)
* The damage structure for the cursor is not deregistered before
deallocation, causing a subsequent DamageUnregister () to segfault.
The problem may leave the text console unrestored.
(0001-Fix-segfault-when-killing-X-with-ctrl-alt-backspace.patch)
-------------------------------------------------------------------
Wed Oct 7 15:30:20 CEST 2009 - eich@suse.de
- 0001-Check-harder-for-primary-PCI-device.patch (bnc #545458)
* Primary PCI devices are identified by checking for an 'PCIINFOCLASSES'
device which is VGA and has access to the memory bars enabled.
If there should be more than one device for which this is true
redo the check and also check if IO resoures are also enabled,
if this still doesn't turn up a unique result also check for
the presence of a BIOS rom.
-------------------------------------------------------------------
Wed Oct 7 04:58:29 CEST 2009 - sndirsch@suse.de

View File

@ -33,7 +33,7 @@ BuildRequires: libjpeg-devel
Url: http://xorg.freedesktop.org/
%define EXPERIMENTAL 0
Version: 7.4
Release: 58
Release: 59
License: GPL v2 or later ; MIT License (or similar)
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Group: System/X11/Servers/XF86_4
@ -140,6 +140,8 @@ Patch191: 0001-Fix-sporadic-segfault-on-resume-with-intel-KMS-due-t.patch
Patch200: bug534768-prefer_local_symbols.patch
Patch201: dga-removal-fix.diff
Patch532341: bug532341.diff
Patch202: 0001-Check-harder-for-primary-PCI-device.patch
Patch203: 0001-Fix-segfault-when-killing-X-with-ctrl-alt-backspace.patch
%description
This package contains the X.Org Server.
@ -284,6 +286,8 @@ popd
%patch200 -p1
%patch201 -p1
%patch532341 -p1
%patch202 -p1
%patch203 -p1
%build
pushd xorg-docs-*

View File

@ -70,7 +70,7 @@ Index: xorg-server-1.6.3.901/hw/xfree86/common/xf86Globals.c
.vtRequestsPending = FALSE,
.dontVTSwitch = FALSE,
.dontZap = FALSE,
+ .ZapWarning = FALSE,
+ .ZapWarning = TRUE,
.dontZoom = FALSE,
.notrapSignals = FALSE,
.caughtSignal = FALSE,
@ -114,7 +114,7 @@ Index: xorg-server-1.6.3.901/hw/xfree86/doc/man/xorg.conf.man.pre
+.B Ctrl+Alt+Backspace
+sequence is pressed for the first time but still terminates the __xservername__
+server when this key-sequence is pressed again shortly after.
+Default: off.
+Default: on.
+.TP 7
.BI "Option \*qDontZoom\*q \*q" boolean \*q
This disallows the use of the