TVOut issues with intel video driver

rglowery at exemail.com.au rglowery at exemail.com.au
Fri Oct 12 04:32:20 PDT 2007


> As far as the crash goes, does the following help anyone diagnose why
> "xrandr --output TV --set TV_FORMAT 576p --auto" is crashing X on my
> Ubuntu Gutsy Gibbon amd64 install?
>
> Program received signal SIGSEGV, Segmentation fault.
> xf86ProbeOutputModes (scrn=0x805fe0, maxX=1024, maxY=1024)
>     at ../../../../hw/xfree86/modes/xf86Crtc.c:1177
> 1177    ../../../../hw/xfree86/modes/xf86Crtc.c: No such file or
> directory.
>         in ../../../../hw/xfree86/modes/xf86Crtc.c
> (gdb) bt full
> #0  xf86ProbeOutputModes (scrn=0x805fe0, maxX=1024, maxY=1024)
>     at ../../../../hw/xfree86/modes/xf86Crtc.c:1177
>         i = <value optimized out>
>         config = (xf86CrtcConfigPtr) 0x809960
>         o = 3
> #1  0x00000000004b986b in xf86RandR12GetInfo12 (pScreen=0x818970,
>     rotations=<value optimized out>)
>     at ../../../../hw/xfree86/modes/xf86RandR12.c:990
>         pScrn = (ScrnInfoPtr) 0x805fe0
> #2  0x0000000000526093 in RRGetInfo (pScreen=0x818970)
>     at ../../randr/rrinfo.c:195
>         pScrPriv = (rrScrPrivPtr) 0x8641b0
>         rotations = 0
>         i = 19739936
> #3  0x00000000005299ca in ProcRRGetScreenSizeRange (client=0x9d0480)
>     at ../../randr/rrscreen.c:222
>         rep = {type = 1 '\001', pad = 0 '\0', sequenceNumber = 22, length
> = 0,
>   minWidth = 46628, minHeight = 126, maxWidth = 0, maxHeight = 0, pad0 =
> 156,
>   pad1 = 0, pad2 = 5302284, pad3 = 0}
>         pWin = <value optimized out>
>         pScreen = (ScreenPtr) 0xc1
> #4  0x00000000004514eb in Dispatch () at ../../dix/dispatch.c:457
>         clientReady = <value optimized out>

Folks,

Some further points of clarification

1) I am using xserver-xorg-core 2:1.3.0.0.dfsg-12ubuntu8
2) Examining the source at
http://packages.ubuntu.com/gutsy/x11/xserver-xorg-core, line 1177 is shown
below.  xf86SortModes is not shown in the stack trace, but I assume since
xf86SortModes is static and only has one caller that it is optimized out.
(can someone confirm this assumption is correct?)

static DisplayModePtr
xf86SortModes (DisplayModePtr input)
{
    DisplayModePtr  output = NULL, i, o, n, *op, prev;

    /* sort by preferred status and pixel area */
    while (input)
    {
        i = input;
        input = input->next; // line 1177
        for (op = &output; (o = *op); op = &o->next)
            if (xf86ModeCompare (o, i) > 0)
                break;
        i->next = *op;
        *op = i;
    }
    /* prune identical modes */
    for (o = output; o && (n = o->next); o = n)

So the question is, how has the input pointer become invalid.  I would
appreciate it is someone could look at this.  I am happy to do any legwork
required.

Thanks

-Rob




More information about the xorg mailing list