summaryrefslogtreecommitdiffstats
path: root/0001-ipmi_si-Fix-error-handling-of-platform-device.patch
diff options
context:
space:
mode:
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.patch54
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
-