Message ID | 20191116154416.19390-1-hslester96@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | video: fbdev: arcfb: add missed free_irq | expand |
On 11/16/19 4:44 PM, Chuhong Yuan wrote: > The driver forgets to free irq in remove which is requested in > probe. > Add the missed call to fix it. > > Signed-off-by: Chuhong Yuan <hslester96@gmail.com> > --- > drivers/video/fbdev/arcfb.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/video/fbdev/arcfb.c b/drivers/video/fbdev/arcfb.c > index a48741aab240..7aed01f001a4 100644 > --- a/drivers/video/fbdev/arcfb.c > +++ b/drivers/video/fbdev/arcfb.c > @@ -590,8 +590,11 @@ static int arcfb_probe(struct platform_device *dev) > static int arcfb_remove(struct platform_device *dev) > { > struct fb_info *info = platform_get_drvdata(dev); > + struct arcfb_par *par = info->par; > > if (info) { > + if (irq) > + free_irq(par->irq, info); > unregister_framebuffer(info); We cannot free IRQ while framebuffer is registered (as we can deadlock in arcfb_ioctl()). Also it seems that ordering in the probe function is wrong (it should not request IRQ or initialize the hardware after registering framebuffer). > vfree((void __force *)info->screen_base); > framebuffer_release(info); Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics
diff --git a/drivers/video/fbdev/arcfb.c b/drivers/video/fbdev/arcfb.c index a48741aab240..7aed01f001a4 100644 --- a/drivers/video/fbdev/arcfb.c +++ b/drivers/video/fbdev/arcfb.c @@ -590,8 +590,11 @@ static int arcfb_probe(struct platform_device *dev) static int arcfb_remove(struct platform_device *dev) { struct fb_info *info = platform_get_drvdata(dev); + struct arcfb_par *par = info->par; if (info) { + if (irq) + free_irq(par->irq, info); unregister_framebuffer(info); vfree((void __force *)info->screen_base); framebuffer_release(info);
The driver forgets to free irq in remove which is requested in probe. Add the missed call to fix it. Signed-off-by: Chuhong Yuan <hslester96@gmail.com> --- drivers/video/fbdev/arcfb.c | 3 +++ 1 file changed, 3 insertions(+)