Message ID | 20241224060819.1492472-2-koichiro.den@canonical.com |
---|---|
State | New |
Headers | show |
Series | gpio: sim, virtuser: minor usability enhancements | expand |
On Thu, Jan 02, 2025 at 01:56:34PM +0100, Bartosz Golaszewski wrote: > On Tue, Dec 24, 2024 at 7:08 AM Koichiro Den <koichiro.den@canonical.com> wrote: > > > > When a virtuser device is created via configfs and the probe fails due > > to an incorrect lookup table, the table is not removed. This prevents > > subsequent probe attempts from succeeding, even if the issue is > > corrected, unless the device is released. > > > > Ensure the lookup table is removed whenever the probe fails. > > > > Fixes: 91581c4b3f29 ("gpio: virtuser: new virtual testing driver for the GPIO API") > > Signed-off-by: Koichiro Den <koichiro.den@canonical.com> > > --- > > drivers/gpio/gpio-virtuser.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/drivers/gpio/gpio-virtuser.c b/drivers/gpio/gpio-virtuser.c > > index 91b6352c957c..a81e15a4b807 100644 > > --- a/drivers/gpio/gpio-virtuser.c > > +++ b/drivers/gpio/gpio-virtuser.c > > @@ -1509,6 +1509,7 @@ gpio_virtuser_device_activate(struct gpio_virtuser_device *dev) > > if (!dev->driver_bound) { > > platform_device_unregister(pdev); > > fwnode_remove_software_node(swnode); > > + gpiod_remove_lookup_table(dev->lookup_table); > > return -ENXIO; > > } > > > > -- > > 2.43.0 > > > > Good catch! Don't we need to do the same if the call to > platform_device_register_full() fails? You're absolutely right. I also realized that I need to kfree the lookup_table. Thanks for the review! I'll fix this and send v2 shortly. -Koichiro > > Bart
diff --git a/drivers/gpio/gpio-virtuser.c b/drivers/gpio/gpio-virtuser.c index 91b6352c957c..a81e15a4b807 100644 --- a/drivers/gpio/gpio-virtuser.c +++ b/drivers/gpio/gpio-virtuser.c @@ -1509,6 +1509,7 @@ gpio_virtuser_device_activate(struct gpio_virtuser_device *dev) if (!dev->driver_bound) { platform_device_unregister(pdev); fwnode_remove_software_node(swnode); + gpiod_remove_lookup_table(dev->lookup_table); return -ENXIO; }
When a virtuser device is created via configfs and the probe fails due to an incorrect lookup table, the table is not removed. This prevents subsequent probe attempts from succeeding, even if the issue is corrected, unless the device is released. Ensure the lookup table is removed whenever the probe fails. Fixes: 91581c4b3f29 ("gpio: virtuser: new virtual testing driver for the GPIO API") Signed-off-by: Koichiro Den <koichiro.den@canonical.com> --- drivers/gpio/gpio-virtuser.c | 1 + 1 file changed, 1 insertion(+)