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@xxxxxx> > --- > 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@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel