From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pierre Pronchery Subject: Crash with Xinerama enabled [patch] Date: Mon, 04 May 2009 01:16:39 +0200 Message-ID: <49FE25D7.10405@defora.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------010805040906090001060304" Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: nouveau.vger.kernel.org This is a multi-part message in MIME format. --------------010805040906090001060304 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dear nouveau hackers, I got as far as figuring out that Xinerama is deprecated now... Too bad WindowMaker doesn't play well with RandR. While painfully learning about it, I managed to crash my Xorg 1.5.3 server through the nouveau driver. The attached patch fixes it. To reproduce the crash, simply run X with Xinerama enabled. $ gdb hw/xfree86/Xorg Xorg.core [...] Core was generated by `Xorg'. Program terminated with signal 6, Aborted. #0 0xbb80d407 in uuid_hash () from /usr/lib/libc.so.12 (gdb) bt #0 0xbb80d407 in uuid_hash () from /usr/lib/libc.so.12 #1 0x0809a05c in ddxGiveUp () at xf86Init.c:1472 #2 0x08117bec in AbortServer () at log.c:407 #3 0x0811808b in FatalError ( f=0x8189dd8 "Caught signal %d. Server aborting\n") at log.c:553 #4 0x080afb45 in xf86SigHandler (signo=-1077945400) at xf86Events.c:593 #5 0xbb85b370 in __opendir2 () from /usr/lib/libc.so.12 #6 0xbb5d0294 in NVLoadPalette (pScrn=0xbb646000, numColors=256, indices=0xbb611c00, colors=0xbb649800, pVisual=0xbb62f5b0) at nv_driver.c:1890 #7 0x080b4962 in CMapRefreshColors (pmap=0xbb6b6000, defs=256, indices=0xbb611c00) at xf86cmap.c:644 #8 0x080b4ddc in CMapReinstallMap (pmap=0xbb6b6000) at xf86cmap.c:517 #9 0x080b5db9 in xf86HandleColormaps (pScreen=0xbb6344e0, maxColors=256, sigRGBbits=8, loadPalette=0xbb5d018c , setOverscan=0, flags=) at xf86cmap.c:216 #10 0xbb5d2a89 in NVScreenInit (scrnIndex=0, pScreen=0xbb6344e0, argc=9, argv=0xbfbfe978) at nv_driver.c:2246 #11 0x08069066 in AddScreen (pfnInit=0xbb5d2090 , argc=9, argv=0xbfbfe978) at main.c:746 #12 0x0809aaaf in InitOutput (pScreenInfo=0x81c6300, argc=9, argv=0xbfbfe978) at xf86Init.c:1258 #13 0x0806977f in main (argc=9, argv=0xbfbfe978, envp=Cannot access memory at address 0x8 ) at main.c:358 HTH, -- khorben --------------010805040906090001060304 Content-Type: text/plain; name="nouveau.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="nouveau.diff" diff --git a/src/nv_driver.c b/src/nv_driver.c index 92232dd..920efc4 100644 --- a/src/nv_driver.c +++ b/src/nv_driver.c @@ -1927,7 +1927,8 @@ NVLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices, } /* Make the change through RandR */ - RRCrtcGammaSet(crtc->randr_crtc, lut_r, lut_g, lut_b); + if(crtc->randr_crtc != NULL) + RRCrtcGammaSet(crtc->randr_crtc, lut_r, lut_g, lut_b); } } --------------010805040906090001060304 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Nouveau mailing list Nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org http://lists.freedesktop.org/mailman/listinfo/nouveau --------------010805040906090001060304--