Messages in this thread | | | Date | Wed, 15 Nov 2017 14:28:25 -0800 | From | Dmitry Torokhov <> | Subject | Re: [PATCH 2/3] firmware: vpd: Tie firmware kobject to device lifetime |
| |
On Wed, Nov 15, 2017 at 01:00:44PM -0800, Guenter Roeck wrote: > It doesn't make sense to have /sys/firmware/vpd if the device is not > instantiated, so tie its lifetime to the device. > > Fixes: 049a59db34eb ("firmware: Google VPD sysfs driver") > Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Reviewed-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> --- > drivers/firmware/google/vpd.c | 19 +++++++++++++------ > 1 file changed, 13 insertions(+), 6 deletions(-) > > diff --git a/drivers/firmware/google/vpd.c b/drivers/firmware/google/vpd.c > index 84217172297b..942e358efa60 100644 > --- a/drivers/firmware/google/vpd.c > +++ b/drivers/firmware/google/vpd.c > @@ -295,7 +295,17 @@ static int vpd_probe(struct platform_device *pdev) > if (ret) > return ret; > > - return vpd_sections_init(entry.cbmem_addr); > + vpd_kobj = kobject_create_and_add("vpd", firmware_kobj); > + if (!vpd_kobj) > + return -ENOMEM; > + > + ret = vpd_sections_init(entry.cbmem_addr); > + if (ret) { > + kobject_put(vpd_kobj); > + return ret; > + } > + > + return 0; > } > > static int vpd_remove(struct platform_device *pdev) > @@ -303,6 +313,8 @@ static int vpd_remove(struct platform_device *pdev) > vpd_section_destroy(&ro_vpd); > vpd_section_destroy(&rw_vpd); > > + kobject_put(vpd_kobj); > + > return 0; > } > > @@ -322,10 +334,6 @@ static int __init vpd_platform_init(void) > if (IS_ERR(pdev)) > return PTR_ERR(pdev); > > - vpd_kobj = kobject_create_and_add("vpd", firmware_kobj); > - if (!vpd_kobj) > - return -ENOMEM; > - > platform_driver_register(&vpd_driver); > > return 0; > @@ -333,7 +341,6 @@ static int __init vpd_platform_init(void) > > static void __exit vpd_platform_exit(void) > { > - kobject_put(vpd_kobj); > } > > module_init(vpd_platform_init); > -- > 2.7.4 >
-- Dmitry
| |