Patch "firmware: vpd: Tie firmware kobject to device lifetime" has been added to the 4.14-stable tree
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 the 4.14-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
firmware-vpd-tie-firmware-kobject-to-device-lifetime.patch
and it can be found in the queue-4.14 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
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
From: Guenter Roeck <[email protected]>
commit e4b28b3c3a405b251fa25db58abe1512814a680a upstream.
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_devif (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_devpd_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(voidif (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);
Patches currently in stable-queue which might be from [email protected] are
queue-4.14/firmware-vpd-fix-platform-driver-and-device-registration-unregistration.patch queue-4.14/firmware-vpd-destroy-vpd-sections-in-remove-function.patch queue-4.14/firmware-vpd-tie-firmware-kobject-to-device-lifetime.patch