On 3/24/20 2:23 PM, Chuhong Yuan wrote: > The driver forgets to free irq in remove which is requested in > probe. > Add the missed call to fix it. > Also, the position of request_irq() in probe should be put before > register_framebuffer(). > > Signed-off-by: Chuhong Yuan <hslester96@xxxxxxxxx> Patch queued for v5.8, thanks. Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics > --- > Changes in v4: > - Use info->par->irq instead of par->irq to avoid dereferencing NULL pointer. > > drivers/video/fbdev/arcfb.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/drivers/video/fbdev/arcfb.c b/drivers/video/fbdev/arcfb.c > index 314ab82e01c0..6f7838979f0a 100644 > --- a/drivers/video/fbdev/arcfb.c > +++ b/drivers/video/fbdev/arcfb.c > @@ -544,10 +544,6 @@ static int arcfb_probe(struct platform_device *dev) > par->cslut[1] = 0x06; > info->flags = FBINFO_FLAG_DEFAULT; > spin_lock_init(&par->lock); > - retval = register_framebuffer(info); > - if (retval < 0) > - goto err1; > - platform_set_drvdata(dev, info); > if (irq) { > par->irq = irq; > if (request_irq(par->irq, &arcfb_interrupt, IRQF_SHARED, > @@ -558,6 +554,10 @@ static int arcfb_probe(struct platform_device *dev) > goto err1; > } > } > + retval = register_framebuffer(info); > + if (retval < 0) > + goto err1; > + platform_set_drvdata(dev, info); > fb_info(info, "Arc frame buffer device, using %dK of video memory\n", > videomemorysize >> 10); > > @@ -593,6 +593,8 @@ static int arcfb_remove(struct platform_device *dev) > > if (info) { > unregister_framebuffer(info); > + if (irq) > + free_irq(((struct arcfb_par *)(info->par))->irq, info); > vfree((void __force *)info->screen_base); > framebuffer_release(info); > } > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel