Hi Tomi, Thank you for the patch. On Tuesday 28 Mar 2017 16:08:16 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") > > We shut down all the crtcs at unload time before calling > omap_drm_irq_uninstall, so the code in omap_drm_irq_uninstall() is > unnecessary and can be removed. > > Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx> > Cc: Daniel Vetter <daniel@xxxxxxxx> Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/omapdrm/omap_irq.c | 14 -------------- > 1 file changed, 14 deletions(-) > > diff --git a/drivers/gpu/drm/omapdrm/omap_irq.c > b/drivers/gpu/drm/omapdrm/omap_irq.c index 26a3c06aa14d..115104cdcc59 > 100644 > --- a/drivers/gpu/drm/omapdrm/omap_irq.c > +++ b/drivers/gpu/drm/omapdrm/omap_irq.c > @@ -285,25 +285,11 @@ int omap_drm_irq_install(struct drm_device *dev) > void omap_drm_irq_uninstall(struct drm_device *dev) > { > struct omap_drm_private *priv = dev->dev_private; > - unsigned long irqflags; > - int i; > > if (!dev->irq_enabled) > return; > > dev->irq_enabled = false; > > - /* Wake up any waiters so they don't hang. */ > - if (dev->num_crtcs) { > - spin_lock_irqsave(&dev->vbl_lock, irqflags); > - 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); > - } > - > priv->dispc_ops->free_irq(dev); > } -- Regards, Laurent Pinchart _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel