firmware: sysfb: fix platform-device leak in error path
Make sure to free the platform device also in the unlikely event that registration fails. Fixes: 0589e8889dce ("drivers/firmware: Add missing platform_device_put() in sysfb_create_simplefb") Fixes: 8633ef82f101 ("drivers/firmware: consolidate EFI framebuffer setup for all arches") Cc: stable@vger.kernel.org # 5.14 Cc: Miaoqian Lin <linmq006@gmail.com> Cc: Javier Martinez Canillas <javierm@redhat.com> Signed-off-by: Johan Hovold <johan@kernel.org> Link: https://lore.kernel.org/r/20220303180519.3117-1-johan@kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
b850b7a8b3
commit
202c08914b
@ -113,16 +113,21 @@ __init int sysfb_create_simplefb(const struct screen_info *si,
|
||||
sysfb_apply_efi_quirks(pd);
|
||||
|
||||
ret = platform_device_add_resources(pd, &res, 1);
|
||||
if (ret) {
|
||||
platform_device_put(pd);
|
||||
return ret;
|
||||
}
|
||||
if (ret)
|
||||
goto err_put_device;
|
||||
|
||||
ret = platform_device_add_data(pd, mode, sizeof(*mode));
|
||||
if (ret) {
|
||||
platform_device_put(pd);
|
||||
return ret;
|
||||
}
|
||||
if (ret)
|
||||
goto err_put_device;
|
||||
|
||||
return platform_device_add(pd);
|
||||
ret = platform_device_add(pd);
|
||||
if (ret)
|
||||
goto err_put_device;
|
||||
|
||||
return 0;
|
||||
|
||||
err_put_device:
|
||||
platform_device_put(pd);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user