On 11/18/19 9:09 AM, Chuhong Yuan wrote: > The driver calls register_framebuffer in probe but does not call > unregister_framebuffer in remove. > Add the missed call to fix it. > > Signed-off-by: Chuhong Yuan <hslester96@xxxxxxxxx> > --- > drivers/video/fbdev/s1d13xxxfb.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/video/fbdev/s1d13xxxfb.c b/drivers/video/fbdev/s1d13xxxfb.c > index e04efb567b5c..162003ea6b79 100644 > --- a/drivers/video/fbdev/s1d13xxxfb.c > +++ b/drivers/video/fbdev/s1d13xxxfb.c > @@ -729,6 +729,7 @@ s1d13xxxfb_remove(struct platform_device *pdev) > struct s1d13xxxfb_par *par = NULL; > > if (info) { > + unregister_framebuffer(info); s1d13xxxfb_remove() is not only called on removal operation but also by s1d13xxxfb_probe() on register_framebuffer() failure. After above change the code in s1d13xxxfb_probe() will break. The issue needs to be fixed in different way, i.e. - rename existing s1d13xxxfb_remove() to __s1d13xxxfb_remove() - add s1d13xxxfb_remove() which does unregister_framebuffer() and then calls __s1d13xxxfb_remove()) > par = info->par; > if (par && par->regs) { > /* disable output & enable powersave */ > Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel