Bug 13517

Summary: zaphod configurations cause crashes, driver should gracefully reject them
Product: xorg Reporter: Matthieu Herrb <matthieu.herrb>
Component: Driver/intelAssignee: Gordon Jin <gordon.jin>
Status: RESOLVED DUPLICATE QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium CC: jbarnes, reyk
Version: 7.3 (2007.09)   
Hardware: x86-64 (AMD64)   
OS: OpenBSD   
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 16926    
Attachments:
Description Flags
xorg.conf
none
Xorg.0.log none

Description Matthieu Herrb 2007-12-04 12:44:00 UTC
On Intel core 2 duo machines running  OpenBSD in 64 bit mode (amd64), the intel 2.2 driver dumps core. 
The previous version used in OpenBSD 4.2 (1.7.4) used to work fine, but of course lots of things have changed.
Comment 1 Matthieu Herrb 2007-12-04 12:44:55 UTC
Created attachment 12936 [details]
xorg.conf
Comment 2 Matthieu Herrb 2007-12-04 12:45:36 UTC
Created attachment 12937 [details]
Xorg.0.log
Comment 3 Matthieu Herrb 2007-12-04 12:46:52 UTC
Here's some debug info from gdb:

GNU gdb 6.3
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "amd64-unknown-openbsd4.2"...
Core was generated by `Xorg'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/X11R6/lib/libXfont.so.7.0...done.
Loaded symbols for /usr/X11R6/lib/libXfont.so.7.0
Reading symbols from /usr/X11R6/lib/libfreetype.so.16.0...done.
Loaded symbols for /usr/X11R6/lib/libfreetype.so.16.0
Reading symbols from /usr/X11R6/lib/libXau.so.9.0...done.
Loaded symbols for /usr/X11R6/lib/libXau.so.9.0
Reading symbols from /usr/X11R6/lib/libfontenc.so.3.0...done.
Loaded symbols for /usr/X11R6/lib/libfontenc.so.3.0
Reading symbols from /usr/lib/libz.so.4.1...done.
Loaded symbols for /usr/lib/libz.so.4.1
Reading symbols from /usr/X11R6/lib/libpixman-1.so.9.5...done.
Loaded symbols for /usr/X11R6/lib/libpixman-1.so.9.5
Reading symbols from /usr/X11R6/lib/libXdmcp.so.9.0...done.
Loaded symbols for /usr/X11R6/lib/libXdmcp.so.9.0
Reading symbols from /usr/lib/libm.so.2.3...done.
Loaded symbols for /usr/lib/libm.so.2.3
Reading symbols from /usr/lib/libc.so.42.0...done.
Loaded symbols for /usr/lib/libc.so.42.0
Reading symbols from /usr/libexec/ld.so...done.
Loaded symbols for /usr/libexec/ld.so
Reading symbols from /usr/X11R6/lib/modules/libpcidata.so...done.
Loaded symbols for /usr/X11R6/lib/modules/libpcidata.so
Reading symbols from /usr/X11R6/lib/modules/extensions/libdbe.so...done.
Loaded symbols for /usr/X11R6/lib/modules/extensions/libdbe.so
Reading symbols from /usr/X11R6/lib/modules/extensions/libextmod.so...done.
Loaded symbols for /usr/X11R6/lib/modules/extensions/libextmod.so
Reading symbols from /usr/X11R6/lib/modules/extensions/libglx.so...done.
Loaded symbols for /usr/X11R6/lib/modules/extensions/libglx.so
Reading symbols from /usr/X11R6/lib/modules/extensions/librecord.so...done.
Loaded symbols for /usr/X11R6/lib/modules/extensions/librecord.so
Reading symbols from /usr/X11R6/lib/modules/extensions/libxtrap.so...done.
Loaded symbols for /usr/X11R6/lib/modules/extensions/libxtrap.so
Reading symbols from /usr/X11R6/lib/modules/fonts/libfreetype.so...done.
Loaded symbols for /usr/X11R6/lib/modules/fonts/libfreetype.so
Reading symbols from /usr/X11R6/lib/modules/fonts/libtype1.so...done.
Loaded symbols for /usr/X11R6/lib/modules/fonts/libtype1.so
Reading symbols from /usr/X11R6/lib/modules/drivers/i810_drv.so...done.
Loaded symbols for /usr/X11R6/lib/modules/drivers/i810_drv.so
Reading symbols from /usr/X11R6/lib/modules/input/mouse_drv.so...done.
Loaded symbols for /usr/X11R6/lib/modules/input/mouse_drv.so
Reading symbols from /usr/X11R6/lib/modules/input/kbd_drv.so...done.
Loaded symbols for /usr/X11R6/lib/modules/input/kbd_drv.so
Reading symbols from /usr/X11R6/lib/modules/libint10.so...done.
Loaded symbols for /usr/X11R6/lib/modules/libint10.so
Reading symbols from /usr/X11R6/lib/modules/libvbe.so...done.
Loaded symbols for /usr/X11R6/lib/modules/libvbe.so
Reading symbols from /usr/X11R6/lib/modules/libvgahw.so...done.
Loaded symbols for /usr/X11R6/lib/modules/libvgahw.so
Reading symbols from /usr/X11R6/lib/modules/libfb.so...done.
Loaded symbols for /usr/X11R6/lib/modules/libfb.so
Reading symbols from /usr/X11R6/lib/modules/libexa.so...done.
Loaded symbols for /usr/X11R6/lib/modules/libexa.so
#0  0x0000000046a12fc7 in i830_allocate_aperture (pScrn=0x40b9c800, 
    name=0x46b3b22a "secondary front buffer", size=3276800, alignment=65536, 
    flags=16) at i830_memory.c:641
641	    for (scan = pI830->memory_list; scan->next != NULL; scan = scan->next) {
(gdb) bt
#0  0x0000000046a12fc7 in i830_allocate_aperture (pScrn=0x40b9c800, 
    name=0x46b3b22a "secondary front buffer", size=3276800, alignment=65536, 
    flags=16) at i830_memory.c:641
#1  0x0000000046a13376 in i830_allocate_memory (pScrn=0x40b9c800, 
    name=0x46b3b22a "secondary front buffer", size=3276800, alignment=65536, 
    flags=16) at i830_memory.c:840
#2  0x0000000046a142ff in i830_allocate_framebuffer (pScrn=0x40b9c800, 
    pI830=0x413fa000, FbMemBox=0x4a5a1038, secondary=1) at i830_memory.c:1210
#3  0x0000000046a149ad in i830_allocate_2d_memory (pScrn=0x40b9c000)
    at i830_memory.c:1393
#4  0x0000000046a0da10 in I830ScreenInit (scrnIndex=0, pScreen=0x413fb000, 
    argc=5, argv=0x7f7ffffecb10) at i830_driver.c:2600
#5  0x000000000042e7c0 in AddScreen ()
#6  0x000000000045c618 in InitOutput ()
#7  0x000000000042dceb in main ()
(gdb) print pI830
$1 = 0x413fa000
(gdb) print *pI830
$2 = {MMIOBase = 0x0, GTTBase = 0x0, FbBase = 0x0, cpp = 4, 
  entityPrivate = 0x40e0dd00, init = 1, bufferOffset = 0, FbMemBox = {x1 = 0, 
    y1 = 0, x2 = 0, y2 = 0}, FbMemBox2 = {x1 = 0, y1 = 0, x2 = 0, y2 = 0}, 
  CacheLines = 0, FbMapSize = 268435456, GTTMapSize = 524288, 
  memory_list = 0x0, bo_list = 0x0, stolen_size = 7860224, gtt_acquired = 0, 
  front_buffer = 0x0, front_buffer_2 = 0x0, compressed_front_buffer = 0x0, 
  compressed_ll_buffer = 0x0, cursor_mem = 0x0, cursor_mem_classic = {0x0, 
    0x0}, cursor_mem_argb = {0x0, 0x0}, xaa_scratch = 0x0, 
  xaa_scratch_2 = 0x0, exa_offscreen = 0x0, exa_965_state = 0x0, LpRing = 0x0, 
  overlay_regs = 0x0, shadowReq = {majorversion = 0 '\0', 
    minorversion = 0 '\0', patchlevel = 0, abiclass = 0x0, abiversion = 0, 
    moduleclass = 0x0}, rotation = 1, PointerMoved = 0, 
  CreateScreenResources = 0, logical_context = 0x0, NeedRingBufferLow = 0, 
  allowPageFlip = 0, TripleBuffer = 0, tiling = 0, fb_compression = 0, 
  backPitch = 0, CursorNeedsPhysical = 0, DGAModes = 0x0, numDGAModes = 0, 
  DGAactive = 0, DGAViewportStatus = 0, Chipset = 0, LinearAddr = 3758096384, 
  MMIOAddr = 4161798144, ioBase = 0, pEnt = 0x40b9d7c0, PciInfo = 0x40d63500, 
  PciTag = 4096, variant = 0 '\0', BR = {0 <repeats 20 times>}, 
  ScanlineColorExpandBuffers = 0x0, NumScanlineColorExpandBuffers = 0, 
  nextColorExpandBuf = 0, fence_used = {0 <repeats 16 times>}, useEXA = 1, 
  noAccel = 0, SWCursor = 0, AccelInfoRec = 0x0, saved_composite = 0, 
  xaa_check_composite = 0, xaa_prepare_composite = 0, xaa_composite = 0, 
  xaa_done_composite = 0, CloseScreen = 0, EXADriverPtr = 0x0, 
  pSrcPixmap = 0x0, writeControl = 0x46a10438 <I830WriteControlMMIO>, 
  readControl = 0x46a10475 <I830ReadControlMMIO>, 
  writeStandard = 0x46a104ae <I830WriteStandardMMIO>, 
  readStandard = 0x46a104d3 <I830ReadStandardMMIO>, XvDisabled = 0, 
  XvEnabled = 0, colorKey = 66046, adaptor = 0x0, BlockHandler = 0, 
  overlayOn = 0x0, scale_units = {{0, 0}, {0, 0}}, transform = {0x0, 0x0}, 
  mapstate = {0, 0, 0, 0, 0, 0}, samplerstate = {0, 0, 0, 0, 0, 0}, 
  directRenderingDisabled = 0, directRenderingEnabled = 0, 
  Options = 0x4a5a3800, StolenOnly = 0, swfSaved = 1, saveSWF0 = 16779264, 
  saveSWF4 = 3221225472, checkDevices = 1, preinit = 0, starting = 0, 
  closing = 0, suspended = 0, leaving = 0, xoffset = 0, yoffset = 0, 
  SaveGeneration = 4294967295, devicesTimer = 0x0, ddc2 = 1, 
  backlight_control_method = COMBO, saveDSPACNTR = 402653184, 
  saveDSPBCNTR = 1224736768, savePIPEACONF = 0, savePIPEBCONF = 3221225472, 
  savePIPEASRC = 67044095, savePIPEBSRC = 41877903, saveFPA0 = 267525, 
  saveFPA1 = 200968, saveDPLL_A = 335813120, saveDPLL_A_MD = 3, 
  saveHTOTAL_A = 88015871, saveHBLANK_A = 88015871, saveHSYNC_A = 77530135, 
  saveVTOTAL_A = 52757247, saveVBLANK_A = 52757247, saveVSYNC_A = 50856706, 
  saveBCLRPAT_A = 0, saveDSPASTRIDE = 6720, saveDSPASIZE = 0, saveDSPAPOS = 0, 
  saveDSPABASE = 0, saveDSPASURF = 0, saveDSPATILEOFF = 0, saveFPB0 = 200201, 
  saveFPB1 = 200968, saveDPLL_B = 2550295040, saveDPLL_B_MD = 3, 
  saveHTOTAL_B = 88015871, saveHBLANK_B = 88015871, saveHSYNC_B = 77530135, 
  saveVTOTAL_B = 52757247, saveVBLANK_B = 52757247, saveVSYNC_B = 50856706, 
  saveBCLRPAT_B = 0, saveDSPBSTRIDE = 640, saveDSPBSIZE = 0, saveDSPBPOS = 0, 
  saveDSPBBASE = 0, saveDSPBSURF = 0, saveDSPBTILEOFF = 0, 
  saveVCLK_DIVISOR_VGA0 = 200968, saveVCLK_DIVISOR_VGA1 = 201734, 
  saveVCLK_POST_DIV = 131074, saveVGACNTRL = 583270542, saveADPA = 1073744896, 
  saveLVDS = 3257959168, saveDVOA = 0, saveDVOB = 0, saveDVOC = 0, 
  savePP_ON = 16386500, savePP_OFF = 16386500, savePP_CONTROL = 3, 
  savePP_CYCLE = 4262147, savePFIT_CONTROL = 2684354560, savePaletteA = {
    0 <repeats 256 times>}, savePaletteB = {0, 168, 43008, 43176, 11010048, 
    11010216, 11053056, 11053224, 84, 252, 43092, 43260, 11010132, 11010300, 
    11053140, 11053308, 21504, 21672, 64512, 64680, 11031552, 11031720, 
    11074560, 11074728, 21588, 21756, 64596, 64764, 11031636, 11031804, 
    11074644, 11074812, 5505024, 5505192, 5548032, 5548200, 16515072, 
    16515240, 16558080, 16558248, 5505108, 5505276, 5548116, 5548284, 
    16515156, 16515324, 16558164, 16558332, 5526528, 5526696, 5569536, 
    5569704, 16536576, 16536744, 16579584, 16579752, 5526612, 5526780, 
    5569620, 5569788, 16536660, 16536828, 16579668, 
    16579836 <repeats 193 times>}, saveSWF = {18876416, 201327616, 0, 
    50528256, 3229745152, 589, 0 <repeats 11 times>}, 
  saveBLC_PWM_CTL = 3098654896, saveBLC_PWM_CTL2 = 3758096384, 
  saveFBC_CFB_BASE = 0, saveFBC_LL_BASE = 0, saveFBC_CONTROL2 = 0, 
  saveFBC_CONTROL = 0, last_3d = 0x0, debug_modes = 0, quirk_flag = 1}
(gdb) quit
Comment 4 Jesse Barnes 2007-12-11 17:38:02 UTC
It looks like you're trying to use the old multihead code... Can you try with a single screen configured and no MonitorLayout option?  You can then use the xrandr command to configure your secondary heads...
Comment 5 Matthieu Herrb 2007-12-13 13:19:25 UTC
You're right. Reyk (who originaly repored this) confirms that using xrandr to configure the dual-head mode fixes the issue for him.

I still think X should reject setups like this that won't work earlier, to avoid the traumatic experience of X segfaults. 
 
Comment 6 Gordon Jin 2008-08-09 19:21:24 UTC
I agree it would be better if driver could treat such case more gracefully. Anyway I would mark it dup with #10299.

Jesse, if you want to fix it, please reopen #10299.

*** This bug has been marked as a duplicate of bug 10299 ***

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.