mach64 broken with xserver 1.13 ?

Matthieu Herrb matthieu.herrb at laas.fr
Sat Nov 17 05:13:52 PST 2012


Hi,

I'm seeing the xf86-video-mach64 6.9.3 crashing with xserver 1.13 on
OpenBSD, both on sparc64 and intel (x86_64) machines. 

here's some debugging information. Apparently something in devPrivate
doesn't get initialized properly, but I'm not able to figure out
what. Any suggestion ?

Thanks in advance

Program received signal SIGSEGV, Segmentation fault.
0x000000a426cf6b6c in memcpy (dst0=0x0, src0=Variable "src0" is not available.
)
    at /share/OpenBSD/src/lib/libc/string/bcopy.c:97
97                      TLOOP(*(word *)dst = *(word *)src; src += wsize; dst += wsize);
(gdb) bt
#0  0x000000a426cf6b6c in memcpy (dst0=0x0, src0=Variable "src0" is not available.
)
    at /share/OpenBSD/src/lib/libc/string/bcopy.c:97
#1  0x000000a42397df9c in Mach64UploadToScreen (pDst=0xa425f21300, x=0, y=0, 
    w=4, h=3, src=0xa425f213c0 "", src_pitch=16)
    at /share/OpenBSD/xenocara/driver/xf86-video-mach64/src/atimach64exa.c:409
#2  0x000000a420c3177c in exaCopyDirty (migrate=0xfffffffffffc0088, 
    pValidDst=0xa425f213a8, pValidSrc=0xa425f21398, 
    transfer=0xa42397deac <Mach64UploadToScreen>, fallback_index=0, sync=0)
    at /share/OpenBSD/xenocara/xserver/exa/exa_migration_classic.c:220
#3  0x000000a420c31f18 in exaCopyDirtyToFb (migrate=0xfffffffffffc0088)
    at /share/OpenBSD/xenocara/xserver/exa/exa_migration_classic.c:303
#4  0x000000a420c320d4 in exaDoMoveInPixmap (migrate=0xfffffffffffc0088)
    at /share/OpenBSD/xenocara/xserver/exa/exa_migration_classic.c:361
#5  0x000000a420c333f0 in exaDoMigration_classic (pixmaps=0xfffffffffffc0070, 
    npixmaps=2, can_accel=1)
    at /share/OpenBSD/xenocara/xserver/exa/exa_migration_classic.c:725
#6  0x000000a420c2fb28 in exaDoMigration (pixmaps=0xfffffffffffc0070, 
    npixmaps=2, can_accel=1) at /share/OpenBSD/xenocara/xserver/exa/exa.c:1134
#7  0x000000a420c3b444 in exaFillRegionTiled (pDrawable=0xa429771a00, 
    pRegion=0xa422bb66b0, pTile=0xa425f21300, pPatOrg=0xa422b9ab48, 
    planemask=4294967295, alu=3, clientClipType=0)
    at /share/OpenBSD/xenocara/xserver/exa/exa_accel.c:1124
#8  0x000000a420c3a16c in exaPolyFillRect (pDrawable=0xa429771a00, 
    pGC=0xa422b9ab00, nrect=1, prect=0xa422bb6350)
    at /share/OpenBSD/xenocara/xserver/exa/exa_accel.c:816
#9  0x000000a21b9acdd8 in damagePolyFillRect (pDrawable=0xa429771a00, 
    pGC=0xa422b9ab00, nRects=1, pRects=0xa422bb6350)
    at /share/OpenBSD/xenocara/xserver/miext/damage/damage.c:1250
#10 0x000000a21b8060d0 in miPaintWindow (pWin=0xa429771a00, 
    prgn=0xfffffffffffc07f8, what=0)
    at /share/OpenBSD/xenocara/xserver/mi/miexpose.c:641
#11 0x000000a21b8059f8 in miWindowExposures (pWin=0xa429771a00, 
    prgn=0xfffffffffffc07f8, other_exposed=0x0)
    at /share/OpenBSD/xenocara/xserver/mi/miexpose.c:470
---Type <return> to continue, or q <return> to quit---
#12 0x000000a21b8a86a8 in xf86XVWindowExposures (pWin=0xa429771a00, 
    reg1=0xfffffffffffc07f8, reg2=0x0)
    at /share/OpenBSD/xenocara/xserver/hw/xfree86/common/xf86xv.c:1171
#13 0x000000a21b7e8a98 in MapWindow (pWin=0xa429771a00, client=0xa41fe3de00)
    at /share/OpenBSD/xenocara/xserver/dix/window.c:2617
#14 0x000000a21b7e0f34 in InitRootWindow (pWin=0xa429771a00)
    at /share/OpenBSD/xenocara/xserver/dix/window.c:576
#15 0x000000a21b768b94 in main (argc=3, argv=0xfffffffffffc0ba8, 
    envp=0xfffffffffffc0bc8) at /share/OpenBSD/xenocara/xserver/dix/main.c:262
(gdb) up
#1  0x000000a42397df9c in Mach64UploadToScreen (pDst=0xa425f21300, x=0, y=0, 
    w=4, h=3, src=0xa425f213c0 "", src_pitch=16)
    at /share/OpenBSD/xenocara/driver/xf86-video-mach64/src/atimach64exa.c:409
warning: Source file is more recent than executable.

409             memcpy(dst, srç wBytes);
(gdb) 
#2  0x000000a420c3177c in exaCopyDirty (migrate=0xfffffffffffc0088, 
    pValidDst=0xa425f213a8, pValidSrc=0xa425f21398, 
    transfer=0xa42397deac <Mach64UploadToScreen>, fallback_index=0, sync=0)
    at /share/OpenBSD/xenocara/xserver/exa/exa_migration_classic.c:220
220             if (!transfer || !transfer(pPixmap,
(gdb) p *pPixmap
$1 = {drawable = {type = 1 '\001', class = 0 '\0', depth = 24 '\030', 
    bitsPerPixel = 32 ' ', id = 0, x = 0, y = 0, width = 4, height = 4, 
    pScreen = 0xa425541800, serialNumber = 7}, devPrivates = 0xa425f21348, 
  refcnt = 2, devKind = 64, devPrivate = {ptr = 0x0, val = 0, uval = 0, 
    fptr = 0}, screen_x = 0, screen_y = 0, usage_hint = 0, 
  master_pixmap = 0xd0d0d0d0d0d0d0d0}
(gdb) 

-- 
Matthieu Herrb


More information about the xorg-devel mailing list