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 <[email protected]>
> ---
>  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
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to