diff options
Diffstat (limited to '0001-ipmi_si-Fix-error-handling-of-platform-device.patch')
-rw-r--r-- | 0001-ipmi_si-Fix-error-handling-of-platform-device.patch | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/0001-ipmi_si-Fix-error-handling-of-platform-device.patch b/0001-ipmi_si-Fix-error-handling-of-platform-device.patch deleted file mode 100644 index 9a3619684..000000000 --- a/0001-ipmi_si-Fix-error-handling-of-platform-device.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 174134ac760275457bb0d1560a0dbe6cf8a12ad6 Mon Sep 17 00:00:00 2001 -From: Corey Minyard <cminyard@mvista.com> -Date: Mon, 27 Nov 2017 08:18:33 -0600 -Subject: [PATCH] ipmi_si: Fix error handling of platform device - -Cleanup of platform devices created by the IPMI driver was not -being done correctly and could result in a memory leak. So -create a local boolean to know how to clean up those platform -devices. - -Reported-by: David Binderman <dcb314@hotmail.com> -Signed-off-by: Corey Minyard <cminyard@mvista.com> ---- - drivers/char/ipmi/ipmi_si_intf.c | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c -index 71fad747c0c7..7499b0cd8326 100644 ---- a/drivers/char/ipmi/ipmi_si_intf.c -+++ b/drivers/char/ipmi/ipmi_si_intf.c -@@ -2045,6 +2045,7 @@ static int try_smi_init(struct smi_info *new_smi) - int rv = 0; - int i; - char *init_name = NULL; -+ bool platform_device_registered = false; - - pr_info(PFX "Trying %s-specified %s state machine at %s address 0x%lx, slave address 0x%x, irq %d\n", - ipmi_addr_src_to_str(new_smi->io.addr_source), -@@ -2173,6 +2174,7 @@ static int try_smi_init(struct smi_info *new_smi) - rv); - goto out_err; - } -+ platform_device_registered = true; - } - - dev_set_drvdata(new_smi->io.dev, new_smi); -@@ -2279,10 +2281,11 @@ static int try_smi_init(struct smi_info *new_smi) - } - - if (new_smi->pdev) { -- platform_device_unregister(new_smi->pdev); -+ if (platform_device_registered) -+ platform_device_unregister(new_smi->pdev); -+ else -+ platform_device_put(new_smi->pdev); - new_smi->pdev = NULL; -- } else if (new_smi->pdev) { -- platform_device_put(new_smi->pdev); - } - - kfree(init_name); --- -2.14.3 - |