Message ID | 20200904154547.3836-11-brgl@bgdev.pl |
---|---|
State | New |
Headers | show |
Series | gpio: mockup: support dynamically created and removed chips | expand |
On Fri, Sep 04, 2020 at 05:45:34PM +0200, Bartosz Golaszewski wrote: > From: Bartosz Golaszewski <bgolaszewski@baylibre.com> > > If the module init function fails after creating the debugs directory, > it's never removed. Add proper cleanup calls to avoid this resource > leak. Does it fix existing bug? > Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> > --- > drivers/gpio/gpio-mockup.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c > index 78c97f7b6893..19c092f814fd 100644 > --- a/drivers/gpio/gpio-mockup.c > +++ b/drivers/gpio/gpio-mockup.c > @@ -550,6 +550,7 @@ static int __init gpio_mockup_init(void) > err = platform_driver_register(&gpio_mockup_driver); > if (err) { > pr_err("error registering platform driver\n"); > + debugfs_remove_recursive(gpio_mockup_dbg_dir); > return err; > } > > @@ -580,6 +581,7 @@ static int __init gpio_mockup_init(void) > pr_err("error registering device"); > platform_driver_unregister(&gpio_mockup_driver); > gpio_mockup_unregister_pdevs(); > + debugfs_remove_recursive(gpio_mockup_dbg_dir); > return PTR_ERR(pdev); > } > > -- > 2.26.1 >
On Fri, Sep 4, 2020 at 7:00 PM Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > > On Fri, Sep 04, 2020 at 05:45:34PM +0200, Bartosz Golaszewski wrote: > > From: Bartosz Golaszewski <bgolaszewski@baylibre.com> > > > > If the module init function fails after creating the debugs directory, > > it's never removed. Add proper cleanup calls to avoid this resource > > leak. > > Does it fix existing bug? You mean - should it go into stable? The bug is quite unlikely but yeah, probably. Bart
diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c index 78c97f7b6893..19c092f814fd 100644 --- a/drivers/gpio/gpio-mockup.c +++ b/drivers/gpio/gpio-mockup.c @@ -550,6 +550,7 @@ static int __init gpio_mockup_init(void) err = platform_driver_register(&gpio_mockup_driver); if (err) { pr_err("error registering platform driver\n"); + debugfs_remove_recursive(gpio_mockup_dbg_dir); return err; } @@ -580,6 +581,7 @@ static int __init gpio_mockup_init(void) pr_err("error registering device"); platform_driver_unregister(&gpio_mockup_driver); gpio_mockup_unregister_pdevs(); + debugfs_remove_recursive(gpio_mockup_dbg_dir); return PTR_ERR(pdev); }