qemu_fw_cfg: don't leak kobj on init error
Michael S. Tsirkin
maintainerPATCH 1/1 qemu_fw_cfg: don't leak kobj on init error
If platform_driver_register fails, we should
cleanup fw_cfg_top_ko before exiting.
Signed-off-by Michael S. Tsirkin <[email protected]>
--- drivers/firmware/qemu_fw_cfg.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
drivers/firmware/qemu_fw_cfg.c +7 -1
@@ -727,12 +727,18 @@ device_param_cb(mmio, &fw_cfg_cmdline_param_ops, NULL, S_IRUSR);static int __init fw_cfg_sysfs_init (void ) { +int ret; +/* create /sys/firmware/qemu_fw_cfg/ top level directory */ fw_cfg_top_ko =kobject_create_and_add ("qemu_fw_cfg" , firmware_kobj);if (!fw_cfg_top_ko)return -ENOMEM ; -return platform_driver_register (&fw_cfg_sysfs_driver); + ret =platform_driver_register (&fw_cfg_sysfs_driver); +if (ret) +fw_cfg_kobj_cleanup (fw_cfg_top_ko); + +return ret; } static void __exit fw_cfg_sysfs_exit(void)
Signature · 1 line
MST
Quoted 4 lines · Michael S. Tsirkin
If
platform_driver_registerfails, we should
cleanupfw_cfg_top_kobefore exiting.Signed-off-by Michael S. Tsirkin <[email protected]>
Acked-by Gabriel Somlo <[email protected]>
Thanks,
--Gabriel
Quoted 30 lines
--- drivers/firmware/qemu_fw_cfg.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)drivers/firmware/qemu_fw_cfg.c +7
-1@@ -727,12 +727,18 @@ device_param_cb(mmio, &fw_cfg_cmdline_param_ops, NULL, S_IRUSR);static int __init fw_cfg_sysfs_init (void ) { +int ret; +/* create /sys/firmware/qemu_fw_cfg/ top level directory */ fw_cfg_top_ko =kobject_create_and_add ("qemu_fw_cfg" , firmware_kobj);if (!fw_cfg_top_ko)return -ENOMEM ; -return platform_driver_register (&fw_cfg_sysfs_driver); + ret =platform_driver_register (&fw_cfg_sysfs_driver); +if (ret) +fw_cfg_kobj_cleanup (fw_cfg_top_ko); + +return ret; } static void __exit fw_cfg_sysfs_exit(void)Signature · 1 line
MST