[PATCHv2 31/31] drm/omap: fix crash on module unload
Daniel Vetter
daniel at ffwll.ch
Sat Mar 25 21:25:55 UTC 2017
On Fri, Mar 24, 2017 at 11:40:52AM +0200, Tomi Valkeinen wrote:
> When unloading omapdrm we get a NULL pointer deref in
> omap_drm_irq_uninstall(). This is caused by:
>
> 967dd48417874dd25491a4e933648f394a64f70f ("drm: remove
> drm_vblank_no_hw_counter assignment from driver code")
>
> As OMAP DSS does not have a HW vblank counter, vblank[i].last is anyway
> always 0, so we can just remove the call to get_vblank_counter().
>
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
> ---
> drivers/gpu/drm/omapdrm/omap_irq.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/omapdrm/omap_irq.c b/drivers/gpu/drm/omapdrm/omap_irq.c
> index 26a3c06aa14d..130fdc3225ed 100644
> --- a/drivers/gpu/drm/omapdrm/omap_irq.c
> +++ b/drivers/gpu/drm/omapdrm/omap_irq.c
> @@ -299,8 +299,6 @@ void omap_drm_irq_uninstall(struct drm_device *dev)
> for (i = 0; i < dev->num_crtcs; i++) {
> wake_up(&dev->vblank[i].queue);
> dev->vblank[i].enabled = false;
> - dev->vblank[i].last =
> - dev->driver->get_vblank_counter(dev, i);
> }
> spin_unlock_irqrestore(&dev->vbl_lock, irqflags);
Why do you even need to open-code this? Assuming you shut down all crtc
before unloading (there's a nice new atomic helper for that, soon in
drm-misc-next), and you properly call drm_crtc_vblank_on/off() in the crtc
enable/disable functions, this should all behandled for your already ...
-Daniel
> }
> --
> 2.7.4
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the dri-devel
mailing list