aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/base/core.c
diff options
context:
space:
mode:
authorLukas Wunner <lukas@wunner.de>2016-07-28 02:25:41 +0200
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2016-08-31 00:28:29 +0200
commit478573c93abd369c4850de55c387be43aa01e2e8 (patch)
tree01a3d0fa8400845fb034a2e2eff2a106518192cb /drivers/base/core.c
parentLinux 4.8-rc4 (diff)
downloadlinux-dev-478573c93abd369c4850de55c387be43aa01e2e8.tar.xz
linux-dev-478573c93abd369c4850de55c387be43aa01e2e8.zip
driver core: Don't leak secondary fwnode on device removal
If device_add_property_set() is called for a device, a secondary fwnode is allocated and assigned to the device but currently not freed once the device is removed. This can be triggered on Apple Macs if a Thunderbolt device is plugged in on boot since Apple's NHI EFI driver sets a number of properties for that device which are leaked on unplug. Signed-off-by: Lukas Wunner <lukas@wunner.de> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/base/core.c')
-rw-r--r--drivers/base/core.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/base/core.c b/drivers/base/core.c
index 0a8bdade53f2..70c5be5b03a7 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -1266,6 +1266,7 @@ void device_del(struct device *dev)
bus_remove_device(dev);
device_pm_remove(dev);
driver_deferred_probe_del(dev);
+ device_remove_properties(dev);
/* Notify the platform of the removal, in case they
* need to do anything...