Bug 11354 - Savage driver crashes when the last client disconnects
Summary: Savage driver crashes when the last client disconnects
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/savage (show other bugs)
Version: 7.2 (2007.02)
Hardware: x86 (IA32) Linux (All)
: medium major
Assignee: Xorg Project Team
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-06-23 10:48 UTC by Dima Ryazanov
Modified: 2007-09-08 23:49 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
Log (30.92 KB, text/plain)
2007-06-23 10:50 UTC, Dima Ryazanov
no flags Details

Description Dima Ryazanov 2007-06-23 10:48:25 UTC
Any time I end the X session, X crashes. It can be reproduced simply by running:

X
DISPLAY=:0 xset q

Backtrace:
#0  0xb7d5c34c in memcpy () from /lib/tls/i686/cmov/libc.so.6
#1  0xb7bc9ba8 in SavageLoadCursorImage (pScrn=0x820dce0, 
    src=0x8387ee0 "\017�) at savage_cursor.c:214
#2  0x080ff4e6 in xf86SetCursor (pScreen=0x82bd718, pCurs=0x839a1c8, x=512, 
    y=384) at xf86HWCurs.c:148
#3  0x080fec4b in xf86CursorSetCursor (pScreen=0x82bd718, pCurs=0x839a1c8, 
    x=<value optimized out>, y=<value optimized out>) at xf86Cursor.c:325
#4  0x0812ac54 in miPointerUpdate () at mipointer.c:358
#5  0x0812ad69 in miPointerDisplayCursor (pScreen=0x82bd718, pCursor=0x839a1c8)
    at mipointer.c:181
#6  0x081434fe in CursorDisplayCursor (pScreen=0x82bd718, pCursor=0x839a1c8)
    at cursor.c:136
#7  0x08167367 in AnimCurDisplayCursor (pScreen=0x82bd718, pCursor=0x839a1c8)
    at animcur.c:234
#8  0x0809766b in DefineInitialRootWindow (win=0x825f5c8) at events.c:2133
#9  0x0807673a in main (argc=1, argv=0xbf80aae4, envp=0xf000f065) at main.c:431

The call to "memcpy" looks like this:
memcpy(psav->FBBase + psav->CursorKByte * 1024, src, 1024);
where "psav->FBBase" is 0.

(The backtrace is actually from xorg-server 1.3.0 and xf86-video-savage-2.1.2, but I wasn't sure what to select in the report. Xorg 7.2 crashes the same way, though.)
Comment 1 Dima Ryazanov 2007-06-23 10:50:23 UTC
Created attachment 10422 [details]
Log
Comment 2 Dima Ryazanov 2007-06-23 11:15:22 UTC
Looks like psav->FBBase gets set to 0 here, and is not initialized again:

#0  SavageUnmapMem (pScrn=0x820d448, All=0) at savage_driver.c:2938
#1  0xb7caa785 in SavageCloseScreen (scrnIndex=0, pScreen=0x8210200)
    at savage_driver.c:3852
#2  0x080c8201 in DPMSClose (i=0, pScreen=0x8210200) at xf86DPMS.c:138
#3  0xb7cce083 in XvCloseScreen (ii=0, pScreen=0x8210200) at xvmain.c:328
#4  0x08169d37 in RRCloseScreen (i=0, pScreen=0x8210200) at randr.c:108
#5  0x080e8cdc in xf86RandRCloseScreen (index=0, pScreen=0x8210200)
    at xf86RandR.c:342
#6  0x080ce4d9 in VidModeClose (i=0, pScreen=0x8210200) at xf86VidMode.c:126
#7  0x08143488 in CursorCloseScreen (index=0, pScreen=0x8210200)
    at cursor.c:174
#8  0x081675c5 in AnimCurCloseScreen (index=0, pScreen=0x8210200)
    at animcur.c:129
#9  0x080767ec in main (argc=1, argv=0xbf946c24, envp=0xa0000) at main.c:470
Comment 3 Dima Ryazanov 2007-09-08 23:49:19 UTC
Fixed in Xorg 7.3! (xf86-video-savage-2.1.3)


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.