With kernel 3.18.0-rc2 I'm getting the following kernel panic in drm_calc_vbltimestamp_from_scanoutpos()on the parisc platform.
As you can see in the attached log, the ring test fails. This is not a new bug - it has failed with older kernels too and of course it would be nice to get it fixed at some point: [drm:r100_ring_test] *ERROR* radeon: ring test failed (scratch(0x15E4)=0xCAFEDEAD) But what's new here now, is that the radeon driver segfaults afterwards. There were no monitors attached to the radeon card. I haven't tested this patch yet, but would it be the right fix? : diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c index 8309b11..0358676 100644 --- a/drivers/gpu/drm/radeon/radeon_kms.c +++ b/drivers/gpu/drm/radeon/radeon_kms.c @@ -795,6 +795,8 @@ int radeon_get_vblank_timestamp_kms(struct drm_device *dev, int crtc, /* Get associated drm_crtc: */ drmcrtc = &rdev->mode_info.crtcs[crtc]->base; + if (!drmcrtc) + return -EINVAL; Helge ... [ 11.312000] Linux agpgart interface v0.103 [ 11.360000] quicksilver: IO PDIR shared with sba_iommu [ 11.436000] (null): AGP aperture is 512M @ 0x60000000 [ 11.500000] [drm] Initialized drm 1.1.0 20060810 [ 11.552000] [drm] radeon kernel modesetting enabled. [ 11.628000] radeon 0000:80:00.0: enabling SERR and PARITY (0187 -> 01c7) [ 11.708000] [drm] initializing kernel modesetting (R300 0x1002:0x4E47 0x1002:0x0152). [ 11.816000] [drm] register mmio base: 0xD0030000 [ 11.868000] [drm] register mmio size: 65536 [ 11.980000] radeon 0000:80:00.0: putting AGP V3 device into 8x mode [ 12.056000] radeon 0000:80:00.0: GTT: 512M 0x60000000 - 0x7FFFFFFF [ 12.132000] [drm] Generation 1 PCI interface in multifunction mode [ 12.204000] [drm] Limiting VRAM to one aperture [ 12.260000] radeon 0000:80:00.0: VRAM: 256M 0xFFFFFFFFC8000000 - 0xFFFFFFFFD7FFFFFF (256M used) [ 12.364000] [drm] Detected VRAM RAM=256M, BAR=128M [ 12.420000] [drm] RAM width 256bits DDR [ 12.468000] [TTM] Zone kernel: Available graphics memory: 4112944 kiB [ 12.544000] [TTM] Zone dma32: Available graphics memory: 2097152 kiB [ 12.624000] [TTM] Initializing pool allocator [ 12.676000] [drm] radeon: 256M of VRAM memory ready [ 12.732000] [drm] radeon: 512M of GTT memory ready. [ 12.792000] [drm] radeon: 2 quad pipes, 1 Z pipes initialized. [ 12.876000] radeon 0000:80:00.0: WB disabled [ 12.928000] radeon 0000:80:00.0: fence driver on ring 0 use gpu addr 0x0000000060000000 and cpu addr 0x0000000000048000 [ 13.056000] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). [ 13.136000] [drm] Driver supports precise vblank timestamp query. [ 13.208000] [drm] radeon: irq initialized. [ 13.256000] [drm] Loading R300 Microcode [ 13.320000] [drm] radeon: ring at 0x0000000060001000 [ 13.576000] [drm:r100_ring_test] *ERROR* radeon: ring test failed (scratch(0x15E4)=0xCAFEDEAD) [ 13.676000] [drm:r100_cp_init] *ERROR* radeon: cp isn't working (-22). [ 13.756000] radeon 0000:80:00.0: failed initializing CP (-22). [ 13.824000] radeon 0000:80:00.0: Disabling GPU acceleration [ 14.088000] [drm:r100_cp_fini] *ERROR* Wait for CP idle timeout, shutting down CP. [ 14.192000] [drm] radeon: cp finalized [ 14.704000] Backtrace: [ 14.732000] [<0000000040647740>] radeon_get_vblank_timestamp_kms+0x90/0xa8 [ 14.816000] [<00000000405e7590>] drm_get_last_vbltimestamp+0x98/0xc0 [ 14.892000] [<00000000405e7b28>] vblank_disable_and_save+0xb8/0x350 [ 14.968000] [<00000000405ea270>] drm_vblank_cleanup+0xc8/0x158 [ 15.040000] [<0000000040690ab0>] radeon_irq_kms_fini+0x40/0xb8 [ 15.112000] [<00000000406a75c0>] r300_init+0x500/0x5a8 [ 15.172000] [<0000000040643304>] radeon_device_init+0xdac/0x1150 [ 15.248000] [<0000000040646bfc>] radeon_driver_load_kms+0x124/0x238 [ 15.324000] [<00000000405ec65c>] drm_dev_register+0x11c/0x250 [ 15.392000] [<00000000405f1994>] drm_get_pci_dev+0x1bc/0x2d8 [ 15.460000] [<000000004061e7d0>] radeon_pci_probe+0x128/0x148 [ 15.532000] [<0000000040513920>] pci_device_probe+0xb0/0x158 [ 15.600000] [<00000000407c4a60>] driver_probe_device+0x148/0x3c0 [ 15.672000] [<00000000407c4dbc>] __driver_attach+0xe4/0x160 [ 15.740000] [<00000000407c139c>] bus_for_each_dev+0xac/0x140 [ 15.812000] [<00000000407c40a0>] driver_attach+0x48/0x60 [ 15.876000] [ 15.892000] [ 15.912000] Kernel Fault: Code=26 regs=000000007fcb1230 (Addr=000000000000024c) [ 16.000000] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 3.18.0-rc1-64bit+ #562 [ 16.084000] task: 000000007fca8000 ti: 000000007fcb0000 task.ti: 000000007fcb0000 [ 17.276000] [ 17.296000] IASQ: 0000000000000000 0000000000000000 IAOQ: 00000000405e95e8 00000000405e95ec [ 17.396000] IIR: 4aad0498 ISR: 0000000000000000 IOR: 000000000000024c [ 17.476000] CPU: 1 CR30: 000000007fcb0000 CR31: 9cb9a6fbd01f400f [ 17.560000] ORIG_R28: 000000007fcb1420 [ 17.604000] IAOQ[0]: drm_calc_vbltimestamp_from_scanoutpos+0xe0/0x518 [ 17.684000] IAOQ[1]: drm_calc_vbltimestamp_from_scanoutpos+0xe4/0x518 [ 17.760000] RP(r2): radeon_get_vblank_timestamp_kms+0x90/0xa8 [ 17.832000] Backtrace: [ 17.860000] [<0000000040647740>] radeon_get_vblank_timestamp_kms+0x90/0xa8 [ 17.944000] [<00000000405e7590>] drm_get_last_vbltimestamp+0x98/0xc0 [ 18.020000] [<00000000405e7b28>] vblank_disable_and_save+0xb8/0x350 [ 18.096000] [<00000000405ea270>] drm_vblank_cleanup+0xc8/0x158 [ 18.168000] [<0000000040690ab0>] radeon_irq_kms_fini+0x40/0xb8 [ 18.240000] [<00000000406a75c0>] r300_init+0x500/0x5a8 [ 18.300000] [<0000000040643304>] radeon_device_init+0xdac/0x1150 [ 18.376000] [<0000000040646bfc>] radeon_driver_load_kms+0x124/0x238 [ 18.452000] [<00000000405ec65c>] drm_dev_register+0x11c/0x250 [ 18.520000] [<00000000405f1994>] drm_get_pci_dev+0x1bc/0x2d8 [ 18.588000] [<000000004061e7d0>] radeon_pci_probe+0x128/0x148 [ 18.660000] [<0000000040513920>] pci_device_probe+0xb0/0x158 [ 18.728000] [<00000000407c4a60>] driver_probe_device+0x148/0x3c0 [ 18.800000] [<00000000407c4dbc>] __driver_attach+0xe4/0x160 [ 18.868000] [<00000000407c139c>] bus_for_each_dev+0xac/0x140 [ 18.936000] [<00000000407c40a0>] driver_attach+0x48/0x60 [ 19.324000] Kernel panic - not syncing: Kernel Fault