Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 330438 Details for
Bug 444560
x11-drivers/ati-drivers-12.11_beta: Xorg segfaults with >x11-drivers/xf86-video-intel-2.20.2
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
Possible fix from ubuntu bugtracker
fix-ati-hybrid.patch (text/plain), 4.86 KB, created by
Alexander Mezin
on 2012-11-24 13:07:56 UTC
(
hide
)
Description:
Possible fix from ubuntu bugtracker
Filename:
MIME Type:
Creator:
Alexander Mezin
Created:
2012-11-24 13:07:56 UTC
Size:
4.86 KB
patch
obsolete
>Fixes regression for ati/intel hybrid systems >by reverting some commits of xf86-video-intel: > > commit 05dcc5f1699ba90fc14c50882e8d4be89bc4a4f9 > Author: Chris Wilson <chris@chris-wilson.co.uk> > Date: Fri Aug 3 15:08:45 2012 +0100 > > Pass the chipset info through driverPrivate rather than a global pointer > > >Nick Andrik <nick.andrik@gmail.com> >Index: xserver-xorg-video-intel-2.20.9/src/intel_driver.c >=================================================================== >--- xserver-xorg-video-intel-2.20.9.orig/src/intel_driver.c 2012-10-30 02:54:05.456713161 +0100 >+++ xserver-xorg-video-intel-2.20.9/src/intel_driver.c 2012-10-30 02:54:16.186075606 +0100 >@@ -185,7 +185,7 @@ > static void intel_check_chipset_option(ScrnInfoPtr scrn) > { > intel_screen_private *intel = intel_get_screen_private(scrn); >- intel_detect_chipset(scrn, intel->pEnt, intel->PciInfo); >+ intel->info = intel_detect_chipset(scrn, intel->pEnt, intel->PciInfo); > } > > static Bool I830GetEarlyOptions(ScrnInfoPtr scrn) >@@ -491,15 +491,14 @@ > if (flags & PROBE_DETECT) > return TRUE; > >- if (((uintptr_t)scrn->driverPrivate) & 1) { >- intel = xnfcalloc(sizeof(*intel), 1); >+ intel = intel_get_screen_private(scrn); >+ if (intel == NULL) { >+ intel = xnfcalloc(sizeof(intel_screen_private), 1); > if (intel == NULL) > return FALSE; > >- intel->info = (void *)((uintptr_t)scrn->driverPrivate & ~1); > scrn->driverPrivate = intel; > } >- intel = intel_get_screen_private(scrn); > intel->scrn = scrn; > intel->pEnt = pEnt; > >Index: xserver-xorg-video-intel-2.20.9/src/intel_driver.h >=================================================================== >--- xserver-xorg-video-intel-2.20.9.orig/src/intel_driver.h 2012-10-30 02:54:05.456713161 +0100 >+++ xserver-xorg-video-intel-2.20.9/src/intel_driver.h 2012-10-30 02:54:16.186075606 +0100 >@@ -277,9 +277,9 @@ > int gen; > }; > >-void intel_detect_chipset(ScrnInfoPtr scrn, >- EntityInfoPtr ent, >- struct pci_device *pci); >+const struct intel_device_info * >+intel_detect_chipset(ScrnInfoPtr scrn, >+ EntityInfoPtr ent, struct pci_device *pci); > > > #endif /* INTEL_DRIVER_H */ >Index: xserver-xorg-video-intel-2.20.9/src/intel_module.c >=================================================================== >--- xserver-xorg-video-intel-2.20.9.orig/src/intel_module.c 2012-10-30 02:54:05.456713161 +0100 >+++ xserver-xorg-video-intel-2.20.9/src/intel_module.c 2012-10-30 02:54:16.186075606 +0100 >@@ -51,6 +51,8 @@ > #include <xf86platformBus.h> > #endif > >+static struct intel_device_info *chipset_info; >+ > static const struct intel_device_info intel_generic_info = { > .gen = -1, > }; >@@ -315,10 +317,9 @@ > { 0, 0, 0 }, > }; > >-void >+const struct intel_device_info * > intel_detect_chipset(ScrnInfoPtr scrn, >- EntityInfoPtr ent, >- struct pci_device *pci) >+ EntityInfoPtr ent, struct pci_device *pci) > { > MessageType from = X_PROBED; > const char *name = NULL; >@@ -347,6 +348,7 @@ > } > > scrn->chipset = name; >+ return chipset_info; > } > > /* >@@ -481,6 +483,8 @@ > PciChipsets intel_pci_chipsets[NUM_CHIPSETS]; > unsigned i; > >+ chipset_info = (void *)match_data; >+ > if (!has_kernel_mode_setting(device)) { > #if KMS_ONLY > return FALSE; >@@ -515,7 +519,6 @@ > scrn->driverVersion = INTEL_VERSION; > scrn->driverName = INTEL_DRIVER_NAME; > scrn->name = INTEL_NAME; >- scrn->driverPrivate = (void *)(match_data | 1); > scrn->Probe = NULL; > > #if !KMS_ONLY >Index: xserver-xorg-video-intel-2.20.9/src/legacy/i810/i810_driver.c >=================================================================== >--- xserver-xorg-video-intel-2.20.9.orig/src/legacy/i810/i810_driver.c 2012-10-30 02:54:05.456713161 +0100 >+++ xserver-xorg-video-intel-2.20.9/src/legacy/i810/i810_driver.c 2012-10-30 02:54:16.186075606 +0100 >@@ -151,7 +151,7 @@ > static Bool > I810GetRec(ScrnInfoPtr scrn) > { >- if (((uintptr_t)scrn->driverPrivate & 1) == 0) >+ if (scrn->driverPrivate) > return TRUE; > > scrn->driverPrivate = xnfcalloc(sizeof(I810Rec), 1); >Index: xserver-xorg-video-intel-2.20.9/src/sna/sna_driver.c >=================================================================== >--- xserver-xorg-video-intel-2.20.9.orig/src/sna/sna_driver.c 2012-10-30 02:54:05.456713161 +0100 >+++ xserver-xorg-video-intel-2.20.9/src/sna/sna_driver.c 2012-10-30 02:54:16.190077605 +0100 >@@ -407,15 +407,14 @@ > > sna_selftest(); > >- if (((uintptr_t)scrn->driverPrivate) & 1) { >+ sna = to_sna(scrn); >+ if (sna == NULL) { > sna = xnfcalloc(sizeof(struct sna), 1); > if (sna == NULL) > return FALSE; > >- sna->info = (void *)((uintptr_t)scrn->driverPrivate & ~1); > scrn->driverPrivate = sna; > } >- sna = to_sna(scrn); > sna->scrn = scrn; > sna->pEnt = pEnt; > >@@ -465,7 +464,7 @@ > > sna_setup_capabilities(scrn, fd); > >- intel_detect_chipset(scrn, sna->pEnt, sna->PciInfo); >+ sna->info = intel_detect_chipset(scrn, sna->pEnt, sna->PciInfo); > > kgem_init(&sna->kgem, fd, sna->PciInfo, sna->info->gen); > if (xf86ReturnOptValBool(sna->Options, OPTION_ACCEL_DISABLE, FALSE)) {
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 444560
: 330438