patch "firmware: vpd: Tie firmware kobject to device lifetime" added to char-misc-linus
This is a note to let you know that I've just added the patch titled
firmware: vpd: Tie firmware kobject to device lifetime
to my char-misc git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
in the char-misc-linus branch.
The patch will show up in the next release of the linux-next tree (usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the next -rc kernel release.
If you have any questions about this process, please let me know.
Quoted 1 line
From
e4b28b3c3a405b251fa25db58abe1512814a680aMon Sep 17 00:00:00 2001
From: Guenter Roeck <[email protected]>
Date: Wed, 15 Nov 2017 13:00:44 -0800
Subject: firmware: vpd: Tie firmware kobject to device lifetime
It doesn't make sense to have /sys/firmware/vpd if the device is not instantiated, so tie its lifetime to the device.
--- drivers/firmware/google/vpd.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-)
drivers/firmware/google/vpd.c +13 -6
@@ -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);
Signature · 1 line
2.15.0