On 06/19, Daniel Vetter wrote: > On Thu, Jun 19, 2014 at 12:38 AM, Konrad Zapalowicz > <bergo.torino@xxxxxxxxx> wrote: > > This commit add check for return value of init_ring_common() in the > > init_render_ring(). Now, when failure is detected the error code is > > propagated to the caller layer instead of being ignored. > > > > I believe that this fix will have a positive impact on the oops that > > I hit recently and which starts when init_ring_common() fails: > > > > [drm:init_ring_common] *ERROR* render ring initialization failed > > ctl 0001f001 head 0000000c tail 00000000 start 003eb000 > > BUG: unable to handle kernel NULL pointer dereference at 0000006c > > IP: [<f8ca1679>] i915_gem_obj_to_ggtt+0x9/0x40 [i915] > > > > Signed-off-by: Konrad Zapalowicz <bergo.torino@xxxxxxxxx> > > Do you have the full Oops somewhere? Here you go, the Oops plus some usefull data: 1. Oops 2. lspci -vv 3. uname -a 4. Oops analysis 1. The Oops: Jun 17 21:06:11 t400 kernel: [ 12.136049] [drm:init_ring_common] *ERROR* render ring initialization failed ctl 0001f001 head 0000000c tail 00000000 start 003eb000 Jun 17 21:06:11 t400 kernel: [ 12.136081] BUG: unable to handle kernel NULL pointer dereference at 0000006c Jun 17 21:06:11 t400 kernel: [ 12.136086] IP: [<f8ca1679>] i915_gem_obj_to_ggtt+0x9/0x40 [i915] Jun 17 21:06:11 t400 kernel: [ 12.136118] *pdpt = 0000000033158001 *pde = 0000000000000000 Jun 17 21:06:11 t400 kernel: [ 12.136123] Oops: 0000 [#1] SMP Jun 17 21:06:11 t400 kernel: [ 12.136127] Modules linked in: mac80211(E) i915(E+) snd_hda_codec_conexant(E) snd_hda_codec_generic(E) snd_hda_intel(E) snd_hda_controller(E) intel_gtt(E) snd_hda_codec(E) iwlwifi(E) i2c_algo_bit(E) snd_hwdep(E) uvcvideo(E) thinkpad_acpi(E) drm_kms_helper(E) snd_pcm(E) pcmcia(E) nvram(E) videobuf2_vmalloc(E) videobuf2_memops(E) videobuf2_core(E) drm(E) psmouse(E) videodev(E) snd_seq_midi(E) snd_seq_midi_event(E) snd_rawmidi(E) snd_seq(E) cfg80211(E) yenta_socket(E) snd_timer(E) pcmcia_rsrc(E) serio_raw(E) snd_seq_device(E) pcmcia_core(E) snd(E) pl2303(E) lpc_ich(E) ppdev(E) usb_storage(E) soundcore(E) usbserial(E) wmi(E) video(E) tpm_tis(E) parport_pc(E) lp(E) parport(E) firewire_ohci(E) firewire_core(E) crc_itu_t(E) ahci(E) libahci(E) e1000e(E) ptp(E) pps_core(E) Jun 17 21:06:11 t400 kernel: [ 12.136187] CPU: 1 PID: 570 Comm: modprobe Tainted: G E 3.15.0 #6 Jun 17 21:06:11 t400 kernel: [ 12.136191] Hardware name: LENOVO 6475FA4/6475FA4, BIOS 7UET79WW (3.09 ) 10/13/2009 Jun 17 21:06:11 t400 kernel: [ 12.136195] task: f3141b60 ti: f316a000 task.ti: f316a000 Jun 17 21:06:11 t400 kernel: [ 12.136199] EIP: 0060:[<f8ca1679>] EFLAGS: 00010282 CPU: 1 Jun 17 21:06:11 t400 kernel: [ 12.136223] EIP is at i915_gem_obj_to_ggtt+0x9/0x40 [i915] Jun 17 21:06:11 t400 kernel: [ 12.136227] EAX: 00000000 EBX: 00000004 ECX: f2e6c000 EDX: fffffffb Jun 17 21:06:11 t400 kernel: [ 12.136230] ESI: f2e6d174 EDI: 00000000 EBP: f316bb50 ESP: f316bb4c Jun 17 21:06:11 t400 kernel: [ 12.136234] DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 Jun 17 21:06:11 t400 kernel: [ 12.136239] CR0: 8005003b CR2: 0000006c CR3: 33157000 CR4: 000407f0 Jun 17 21:06:11 t400 kernel: [ 12.136243] Stack: Jun 17 21:06:11 t400 kernel: [ 12.136245] 00000004 f316bb68 f8ca16c5 f316bb80 00000004 f2e6d174 f2e794c0 f316bb80 Jun 17 21:06:11 t400 kernel: [ 12.136254] f8c9473e f2e6c000 f2e6c000 f32e5800 fffffffb f316bba0 f8c9ea49 00000000 Jun 17 21:06:11 t400 kernel: [ 12.136263] 00000000 f32e5838 f32e5800 00000000 f2e6c000 f316bca4 f8cf63a4 f8cf3c70 Jun 17 21:06:11 t400 kernel: [ 12.136271] Call Trace: Jun 17 21:06:11 t400 kernel: [ 12.136297] [<f8ca16c5>] i915_gem_object_ggtt_unpin+0x15/0x90 [i915] Jun 17 21:06:11 t400 kernel: [ 12.136323] [<f8c9473e>] i915_gem_context_fini+0x7e/0x130 [i915] Jun 17 21:06:11 t400 kernel: [ 12.136349] [<f8c9ea49>] i915_gem_init+0x69/0x1a0 [i915] Jun 17 21:06:11 t400 kernel: [ 12.136381] [<f8cf63a4>] i915_driver_load+0xa54/0xe50 [i915] Jun 17 21:06:11 t400 kernel: [ 12.136411] [<f8cf3c70>] ? i915_dma_init+0x2e0/0x2e0 [i915] Jun 17 21:06:11 t400 kernel: [ 12.136419] [<c12ed1da>] ? kobject_uevent_env+0xfa/0x510 Jun 17 21:06:11 t400 kernel: [ 12.136424] [<c12ed1da>] ? kobject_uevent_env+0xfa/0x510 Jun 17 21:06:11 t400 kernel: [ 12.136429] [<c12ed050>] ? add_uevent_var+0xd0/0xd0 Jun 17 21:06:11 t400 kernel: [ 12.136435] [<c13d11b4>] ? get_device+0x14/0x30 Jun 17 21:06:11 t400 kernel: [ 12.136440] [<c13d5a92>] ? klist_class_dev_get+0x12/0x20 Jun 17 21:06:11 t400 kernel: [ 12.136447] [<c15f34c5>] ? klist_node_init+0x35/0x50 Jun 17 21:06:11 t400 kernel: [ 12.136452] [<c15f35a0>] ? klist_add_tail+0x20/0x50 Jun 17 21:06:11 t400 kernel: [ 12.136457] [<c13d1204>] ? put_device+0x14/0x20 Jun 17 21:06:11 t400 kernel: [ 12.136462] [<c13d27d7>] ? device_add+0x167/0x530 Jun 17 21:06:11 t400 kernel: [ 12.136468] [<c12ec522>] ? kobject_set_name_vargs+0x42/0x60 Jun 17 21:06:11 t400 kernel: [ 12.136485] [<f89ed12e>] drm_dev_register+0x9e/0xf0 [drm] Jun 17 21:06:11 t400 kernel: [ 12.136499] [<f89eee2f>] drm_get_pci_dev+0x6f/0x1e0 [drm] Jun 17 21:06:11 t400 kernel: [ 12.136521] [<f8c7f325>] i915_pci_probe+0x35/0x60 [i915] Jun 17 21:06:11 t400 kernel: [ 12.136528] [<c131f489>] pci_device_probe+0x79/0xc0 Jun 17 21:06:11 t400 kernel: [ 12.136534] [<c11c3cd5>] ? sysfs_create_link+0x25/0x40 Jun 17 21:06:11 t400 kernel: [ 12.136540] [<c13d4f04>] driver_probe_device+0x64/0x200 Jun 17 21:06:11 t400 kernel: [ 12.136545] [<c131f3ce>] ? pci_match_device+0x9e/0xb0 Jun 17 21:06:11 t400 kernel: [ 12.136550] [<c13d5131>] __driver_attach+0x91/0xa0 Jun 17 21:06:11 t400 kernel: [ 12.136555] [<c13d50a0>] ? driver_probe_device+0x200/0x200 Jun 17 21:06:11 t400 kernel: [ 12.136559] [<c13d3752>] bus_for_each_dev+0x42/0x80 Jun 17 21:06:11 t400 kernel: [ 12.136564] [<c13d4a8e>] driver_attach+0x1e/0x20 Jun 17 21:06:11 t400 kernel: [ 12.136569] [<c13d50a0>] ? driver_probe_device+0x200/0x200 Jun 17 21:06:11 t400 kernel: [ 12.136575] [<c13d4714>] bus_add_driver+0xd4/0x1d0 Jun 17 21:06:11 t400 kernel: [ 12.136580] [<c13d5719>] driver_register+0x59/0xe0 Jun 17 21:06:11 t400 kernel: [ 12.136585] [<c131e8d3>] __pci_register_driver+0x33/0x40 Jun 17 21:06:11 t400 kernel: [ 12.136590] [<f8b7c000>] ? 0xf8b7bfff Jun 17 21:06:11 t400 kernel: [ 12.136603] [<f89ef08d>] drm_pci_init+0xed/0x110 [drm] Jun 17 21:06:11 t400 kernel: [ 12.136609] [<f8b7c000>] ? 0xf8b7bfff Jun 17 21:06:11 t400 kernel: [ 12.136630] [<f8b7c062>] i915_init+0x62/0x64 [i915] Jun 17 21:06:11 t400 kernel: [ 12.136636] [<c100048a>] do_one_initcall+0xda/0x120 Jun 17 21:06:11 t400 kernel: [ 12.136641] [<f8b7c000>] ? 0xf8b7bfff Jun 17 21:06:11 t400 kernel: [ 12.136646] [<c103652f>] ? set_memory_nx+0x5f/0x70 Jun 17 21:06:11 t400 kernel: [ 12.136653] [<c15f7fbb>] ? set_section_ro_nx+0x54/0x59 Jun 17 21:06:11 t400 kernel: [ 12.136659] [<c10ae4bb>] load_module+0x1adb/0x21b0 Jun 17 21:06:11 t400 kernel: [ 12.136667] [<c160475a>] ? error_code+0x5a/0x60 Jun 17 21:06:11 t400 kernel: [ 12.136672] [<c10aec13>] SyS_init_module+0x83/0xb0 Jun 17 21:06:11 t400 kernel: [ 12.136680] [<c160b84c>] sysenter_do_call+0x12/0x22 Jun 17 21:06:11 t400 kernel: [ 12.136684] Code: f8 e8 ec de 39 c8 e9 36 ff ff ff 66 ba 6d 09 b8 e0 8c d0 f8 e8 d9 de 39 c8 e9 ff fe ff ff 8d 74 26 00 55 89 e5 53 66 66 66 66 90 <8b> 50 6c 8d 48 6c 39 ca 74 1a 8b 40 08 8d 4a cc 8b 58 1c 31 c0 Jun 17 21:06:11 t400 kernel: [ 12.136725] EIP: [<f8ca1679>] i915_gem_obj_to_ggtt+0x9/0x40 [i915] SS:ESP 0068:f316bb4c Jun 17 21:06:11 t400 kernel: [ 12.136752] CR2: 000000000000006c Jun 17 21:06:11 t400 kernel: [ 12.136757] ---[ end trace 3fff41670168a98f ]--- 2. lspci -vv 00:00.0 Host bridge: Intel Corporation Mobile 4 Series Chipset Memory Controller Hub (rev 07) Subsystem: Lenovo Device 20e0 Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx- Latency: 0 Capabilities: <access denied> 00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07) (prog-if 00 [VGA controller]) Subsystem: Lenovo Device 20e4 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 49 Region 0: Memory at f4400000 (64-bit, non-prefetchable) [size=4M] Region 2: Memory at d0000000 (64-bit, prefetchable) [size=256M] Region 4: I/O ports at 1800 [size=8] Expansion ROM at <unassigned> [disabled] Capabilities: <access denied> Kernel driver in use: i915 00:02.1 Display controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07) Subsystem: Lenovo Device 20e4 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Region 0: Memory at f4200000 (64-bit, non-prefetchable) [size=1M] Capabilities: <access denied> 00:03.0 Communication controller: Intel Corporation Mobile 4 Series Chipset MEI Controller (rev 07) Subsystem: Lenovo Device 20e6 Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx+ Latency: 0 Interrupt: pin A routed to IRQ 11 Region 0: Memory at fc326800 (64-bit, non-prefetchable) [size=16] Capabilities: <access denied> 00:03.3 Serial controller: Intel Corporation Mobile 4 Series Chipset AMT SOL Redirection (rev 07) (prog-if 02 [16550]) Subsystem: Lenovo Device 20ec Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin B routed to IRQ 17 Region 0: I/O ports at 1830 [size=8] Region 1: Memory at fc324000 (32-bit, non-prefetchable) [size=4K] Capabilities: <access denied> Kernel driver in use: serial 00:19.0 Ethernet controller: Intel Corporation 82567LM Gigabit Network Connection (rev 03) Subsystem: Lenovo Device 20ee Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 48 Region 0: Memory at fc100000 (32-bit, non-prefetchable) [size=128K] Region 1: Memory at fc325000 (32-bit, non-prefetchable) [size=4K] Region 2: I/O ports at 1840 [size=32] Capabilities: <access denied> Kernel driver in use: e1000e 00:1a.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 03) (prog-if 00 [UHCI]) Subsystem: Lenovo Device 20f0 Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 20 Region 4: I/O ports at 1860 [size=32] Capabilities: <access denied> Kernel driver in use: uhci_hcd 00:1a.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 03) (prog-if 00 [UHCI]) Subsystem: Lenovo Device 20f0 Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin B routed to IRQ 21 Region 4: I/O ports at 1880 [size=32] Capabilities: <access denied> Kernel driver in use: uhci_hcd 00:1a.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 (rev 03) (prog-if 00 [UHCI]) Subsystem: Lenovo Device 20f0 Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin C routed to IRQ 22 Region 4: I/O ports at 18a0 [size=32] Capabilities: <access denied> Kernel driver in use: uhci_hcd 00:1a.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 03) (prog-if 20 [EHCI]) Subsystem: Lenovo Device 20f1 Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin D routed to IRQ 23 Region 0: Memory at fc326c00 (32-bit, non-prefetchable) [size=1K] Capabilities: <access denied> Kernel driver in use: ehci-pci 00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03) Subsystem: Lenovo Device 20f2 Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin B routed to IRQ 45 Region 0: Memory at fc320000 (64-bit, non-prefetchable) [size=16K] Capabilities: <access denied> Kernel driver in use: snd_hda_intel 00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 (rev 03) (prog-if 00 [Normal decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Bus: primary=00, secondary=02, subordinate=02, sec-latency=0 I/O behind bridge: 00009000-00009fff Memory behind bridge: c0000000-c01fffff Prefetchable memory behind bridge: 00000000c0200000-00000000c03fffff Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR- BridgeCtl: Parity- SERR- NoISA+ VGA- MAbort- >Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: <access denied> Kernel driver in use: pcieport 00:1c.1 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 2 (rev 03) (prog-if 00 [Normal decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Bus: primary=00, secondary=03, subordinate=03, sec-latency=0 I/O behind bridge: 0000a000-0000afff Memory behind bridge: f4300000-f43fffff Prefetchable memory behind bridge: 00000000c0400000-00000000c05fffff Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR- BridgeCtl: Parity- SERR- NoISA+ VGA- MAbort- >Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: <access denied> Kernel driver in use: pcieport 00:1c.2 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 3 (rev 03) (prog-if 00 [Normal decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Bus: primary=00, secondary=04, subordinate=04, sec-latency=0 I/O behind bridge: 00002000-00002fff Memory behind bridge: fc000000-fc0fffff Prefetchable memory behind bridge: 00000000c0600000-00000000c08fffff Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR- BridgeCtl: Parity- SERR- NoISA+ VGA- MAbort- >Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: <access denied> Kernel driver in use: pcieport 00:1c.3 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 4 (rev 03) (prog-if 00 [Normal decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Bus: primary=00, secondary=05, subordinate=0c, sec-latency=0 I/O behind bridge: 00003000-00003fff Memory behind bridge: f8000000-f9ffffff Prefetchable memory behind bridge: 00000000f4000000-00000000f40fffff Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR- BridgeCtl: Parity- SERR- NoISA+ VGA- MAbort- >Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: <access denied> Kernel driver in use: pcieport 00:1c.4 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 5 (rev 03) (prog-if 00 [Normal decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Bus: primary=00, secondary=0d, subordinate=14, sec-latency=0 I/O behind bridge: 00004000-00004fff Memory behind bridge: fa000000-fbffffff Prefetchable memory behind bridge: 00000000f4100000-00000000f41fffff Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR- BridgeCtl: Parity- SERR- NoISA+ VGA- MAbort- >Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: <access denied> Kernel driver in use: pcieport 00:1d.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 03) (prog-if 00 [UHCI]) Subsystem: Lenovo Device 20f0 Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 16 Region 4: I/O ports at 18c0 [size=32] Capabilities: <access denied> Kernel driver in use: uhci_hcd 00:1d.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 03) (prog-if 00 [UHCI]) Subsystem: Lenovo Device 20f0 Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin B routed to IRQ 17 Region 4: I/O ports at 18e0 [size=32] Capabilities: <access denied> Kernel driver in use: uhci_hcd 00:1d.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 03) (prog-if 00 [UHCI]) Subsystem: Lenovo Device 20f0 Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin C routed to IRQ 18 Region 4: I/O ports at 1c00 [size=32] Capabilities: <access denied> Kernel driver in use: uhci_hcd 00:1d.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 03) (prog-if 20 [EHCI]) Subsystem: Lenovo Device 20f1 Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin D routed to IRQ 19 Region 0: Memory at fc327000 (32-bit, non-prefetchable) [size=1K] Capabilities: <access denied> Kernel driver in use: ehci-pci 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 93) (prog-if 01 [Subtractive decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Bus: primary=00, secondary=15, subordinate=18, sec-latency=32 I/O behind bridge: 00005000-00008fff Memory behind bridge: f4800000-f7ffffff Prefetchable memory behind bridge: 00000000f0000000-00000000f3ffffff Secondary status: 66MHz- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ <SERR- <PERR- BridgeCtl: Parity- SERR- NoISA+ VGA- MAbort- >Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: <access denied> 00:1f.0 ISA bridge: Intel Corporation ICH9M-E LPC Interface Controller (rev 03) Subsystem: Lenovo Device 20f5 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Capabilities: <access denied> Kernel driver in use: lpc_ich 00:1f.2 SATA controller: Intel Corporation 82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode] (rev 03) (prog-if 01 [AHCI 1.0]) Subsystem: Lenovo Device 20f8 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin B routed to IRQ 46 Region 0: I/O ports at 1c48 [size=8] Region 1: I/O ports at 183c [size=4] Region 2: I/O ports at 1c40 [size=8] Region 3: I/O ports at 1838 [size=4] Region 4: I/O ports at 1c20 [size=32] Region 5: Memory at fc326000 (32-bit, non-prefetchable) [size=2K] Capabilities: <access denied> Kernel driver in use: ahci 00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 03) Subsystem: Lenovo Device 20f9 Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Interrupt: pin A routed to IRQ 11 Region 0: Memory at fc327400 (64-bit, non-prefetchable) [size=256] Region 4: I/O ports at 1c60 [size=32] 03:00.0 Network controller: Intel Corporation Ultimate N WiFi Link 5300 Subsystem: Intel Corporation Device 1011 Physical Slot: 1 Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 47 Region 0: Memory at f4300000 (64-bit, non-prefetchable) [size=8K] Capabilities: <access denied> Kernel driver in use: iwlwifi 04:00.0 Memory controller: Intel Corporation Turbo Memory Controller (rev 11) Subsystem: Intel Corporation Device 4443 Physical Slot: 2 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 11 Region 0: Memory at fc000000 (32-bit, non-prefetchable) [size=1K] Region 2: I/O ports at 2000 [size=256] [virtual] Expansion ROM at c0600000 [disabled] [size=64K] Capabilities: <access denied> 15:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev ba) Subsystem: Lenovo Device 20c6 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 168, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 16 Region 0: Memory at f4800000 (32-bit, non-prefetchable) [size=4K] Bus: primary=15, secondary=16, subordinate=17, sec-latency=176 Memory window 0: f0000000-f3ffffff (prefetchable) Memory window 1: c4000000-c7ffffff I/O window 0: 00005000-000050ff I/O window 1: 00005400-000054ff BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset- 16bInt+ PostWrite+ 16-bit legacy interface ports at 0001 Kernel driver in use: yenta_cardbus 15:00.1 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller (rev 04) (prog-if 10 [OHCI]) Subsystem: Lenovo Device 20c7 Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 32 (500ns min, 1000ns max), Cache Line Size: 64 bytes Interrupt: pin B routed to IRQ 17 Region 0: Memory at f4801000 (32-bit, non-prefetchable) [size=2K] Capabilities: <access denied> Kernel driver in use: firewire_ohci 3. uname Linux t400 3.15.0 #6 SMP Sat Jun 14 21:07:35 CEST 2014 i686 i686 i686 GNU/Linux 4. Oops analysis I have spent some time tracing down the source of the Oops. It turned out that the failure is caused in list_empty() function which is used by the i915_gem_obj_to_ggtt() function. The decoded code shows: Code starting with the faulting instruction =========================================== 0: 8b 50 6c mov 0x6c(%eax),%edx <--- trapping 3: 8d 48 6c lea 0x6c(%eax),%ecx 6: 39 ca cmp %ecx,%edx 8: 74 1a je 0x24 a: 8b 40 08 mov 0x8(%eax),%eax d: 8d 4a cc lea -0x34(%edx),%ecx 10: 8b 58 1c mov 0x1c(%eax),%ebx 13: 31 c0 xor %eax,%eax Now the 0x6c offset corresponds to the vma_list member of struct drm_i915_gem_object. (gdb) print &((struct drm_i915_gem_object *)0)->vma_list $1 = (struct list_head *) 0x6c <i915_free_hws+92> So the Oops is because the vma_list has not been initialized. I suspect, although not 100% sure, that the ringbuffer error has something to do with it. /Konrad > > --- > > drivers/gpu/drm/i915/intel_ringbuffer.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c > > index 279488a..d205b0d 100644 > > --- a/drivers/gpu/drm/i915/intel_ringbuffer.c > > +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c > > @@ -604,6 +604,8 @@ static int init_render_ring(struct intel_engine_cs *ring) > > struct drm_device *dev = ring->dev; > > struct drm_i915_private *dev_priv = dev->dev_private; > > int ret = init_ring_common(ring); > > + if (ret) > > + return ret; > > Yeah, on gen5+ this looks needed. > -Daniel > > > > > /* WaTimedSingleVertexDispatch:cl,bw,ctg,elk,ilk,snb */ > > if (INTEL_INFO(dev)->gen >= 4 && INTEL_INFO(dev)->gen < 7) > > -- > > 1.8.1.2 > > > > > > -- > Daniel Vetter > Software Engineer, Intel Corporation > +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx