patch "firmware: vpd: Fix platform driver and device" added to char-misc-linus
This is a note to let you know that I've just added the patch titled
firmware: vpd: Fix platform driver and device
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
0631fb8b027f5968c2f5031f0b3ff7be3e4bebccMon Sep 17 00:00:00 2001
From: Guenter Roeck <[email protected]>
Date: Wed, 15 Nov 2017 13:00:45 -0800
Subject: firmware: vpd: Fix platform driver and device
registration/unregistration
The driver exit function needs to unregister both platform device and driver. Also, during registration, register driver first and perform error checks.
--- drivers/firmware/google/vpd.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-)
drivers/firmware/google/vpd.c +13 -5
@@ -326,21 +326,29 @@ static struct platform_driver vpd_driver = { }, }; +static struct platform_device *vpd_pdev; +static int __init vpd_platform_init (void ) { -struct platform_device *pdev; +int ret; - pdev =platform_device_register_simple ("vpd" ,-1 ,NULL ,0 ); -if (IS_ERR (pdev)) -return PTR_ERR (pdev); + ret =platform_driver_register (&vpd_driver); +if (ret) +return ret; -platform_driver_register (&vpd_driver); + vpd_pdev =platform_device_register_simple ("vpd" ,-1 ,NULL ,0 ); +if (IS_ERR (vpd_pdev)) { +platform_driver_unregister (&vpd_driver); +return PTR_ERR (vpd_pdev); + }return 0 ; } static void __exit vpd_platform_exit(void) { +platform_device_unregister (vpd_pdev); +platform_driver_unregister (&vpd_driver); }module_init (vpd_platform_init);
Signature · 1 line
2.15.0