[Intel-gfx] [PATCH] drm/i915: call drm_vblank_cleanup() earlier at unload

Daniel Vetter daniel at ffwll.ch
Tue Oct 21 17:22:01 CEST 2014


On Fri, Oct 17, 2014 at 02:18:34PM +0300, Ville Syrjälä wrote:
> On Wed, Oct 15, 2014 at 02:15:04PM -0300, Paulo Zanoni wrote:
> > From: Paulo Zanoni <paulo.r.zanoni at intel.com>
> > 
> > In its current place, it just segfaults while trying to access the
> > CRTC structures:
> > 
> > [ 9132.421681] Call Trace:
> > [ 9132.421707]  [<ffffffffa01130d8>] i915_get_crtc_scanoutpos+0x1e8/0x220 [i915]
> > [ 9132.421727]  [<ffffffffa001da34>] drm_calc_vbltimestamp_from_scanoutpos+0x94/0x330 [drm]
> > [ 9132.421744]  [<ffffffffa001d240>] ?vblank_disable_and_save+0x40/0x1e0 [drm]
> > [ 9132.421769]  [<ffffffffa0114328>] i915_get_vblank_timestamp+0x68/0xb0 [i915]
> > [ 9132.421786]  [<ffffffffa001d094>] drm_get_last_vbltimestamp+0x44/0x80 [drm]
> > [ 9132.421801]  [<ffffffffa001d3a6>] vblank_disable_and_save+0x1a6/0x1e0 [drm]
> > [ 9132.421817]  [<ffffffffa001eac1>] drm_vblank_cleanup+0x61/0xa0 [drm]
> > [ 9132.421849]  [<ffffffffa0177a5e>] i915_driver_unload+0xde/0x290 [i915]
> > [ 9132.421867]  [<ffffffffa0020264>] drm_dev_unregister+0x24/0xb0 [drm]
> > [ 9132.421884]  [<ffffffffa002090e>] drm_put_dev+0x1e/0x70 [drm]
> > [ 9132.421901]  [<ffffffffa00e01e0>] i915_pci_remove+0x10/0x20 [i915]
> > [ 9132.421910]  [<ffffffff81347556>] pci_device_remove+0x36/0xb0
> > [ 9132.421920]  [<ffffffff8140084a>] __device_release_driver+0x7a/0xf0
> > [ 9132.421928]  [<ffffffff81400fc8>] driver_detach+0xb8/0xc0
> > [ 9132.421936]  [<ffffffff8140054a>] bus_remove_driver+0x4a/0xb0
> > [ 9132.421944]  [<ffffffff81401717>] driver_unregister+0x27/0x50
> > [ 9132.421953]  [<ffffffff81346f65>] pci_unregister_driver+0x25/0x70
> > [ 9132.421971]  [<ffffffffa00229c8>] drm_pci_exit+0x78/0xa0 [drm]
> > [ 9132.422000]  [<ffffffffa017a6d2>] i915_exit+0x20/0x94e [i915]
> > [ 9132.422009]  [<ffffffff810fb9dc>] SyS_delete_module+0x13c/0x1f0
> > [ 9132.422019]  [<ffffffff8131c5fb>] ?
> > trace_hardirqs_on_thunk+0x3a/0x3f
> > [ 9132.422028]  [<ffffffff816f7792>] system_call_fastpath+0x16/0x1b
> > 
> > This means it has to be before intel_modeset_cleanup, which cleans the
> > CRTC structures. But if we move it to before intel_fbdev_fini(), we
> > get WARNs because intel_fbdev_fini() still tries to use the vblanks,
> > so the only acceptable point for drm_vblank_cleanup() seems to be this
> > place.
> 
> Hmm. Yeah that seems like the spot we have to put it given it wants
> to call the vblank disable hook.
> 
> Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com>

Queued for -next, thanks for the patch.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch



More information about the Intel-gfx mailing list