tags 406044 patch fixed-upstream
severity 406044 serious
thanks
After running for 2 weeks without a single crash I can confirm that this
fix solves the problem.
I think this issue is serious enough to warrant being fixed in etch,
therefor I've increased the severity to serious. (Just google how many
other people report this same crash.)
In particular I'm doing so because it has a very simple and clear patch
that fixes the problem, and because upstream has applied this patch to
7.2.
-Ariel
--- xorg-server-1.1.1.orig/hw/xfree86/dri/dri.c
+++ xorg-server-1.1.1/hw/xfree86/dri/dri.c
@@ -1378,7 +1378,8 @@
DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen);
DRILock(pScreen, 0);
- if (pDRIPriv->pDriverInfo->driverSwapMethod == DRI_HIDE_X_CONTEXT) {
+ if (pDRIPriv &&
+ pDRIPriv->pDriverInfo->driverSwapMethod == DRI_HIDE_X_CONTEXT) {
/* hide X context by swapping 2D component here */
(*pDRIPriv->pDriverInfo->SwapContext)(pScreen,
DRI_3D_SYNC,
@@ -1396,6 +1397,8 @@
ScreenPtr pScreen = screenInfo.screens[screenNum];
DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen);
+ if (pDRIPriv) {
+
if (pDRIPriv->pDriverInfo->driverSwapMethod == DRI_HIDE_X_CONTEXT) {
/* hide X context by swapping 2D component here */
(*pDRIPriv->pDriverInfo->SwapContext)(pScreen,
@@ -1410,6 +1413,8 @@
DRM_SPINUNLOCK(&pDRIPriv->pSAREA->drawable_lock, 1);
pDRIPriv->windowsTouched = FALSE;
+ }
+
DRIUnlock(pScreen);
}