driver core: Don't leak secondary fwnode on device removal
authorLukas Wunner <lukas@wunner.de>
Thu, 28 Jul 2016 00:25:41 +0000 (02:25 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 30 Aug 2016 22:28:29 +0000 (00:28 +0200)
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>
drivers/base/core.c

index 0a8bdade53f2f67943dca83bc53cfa74f0b8da7d..70c5be5b03a774c1df41681d8b61ca2f3bb4975c 100644 (file)
@@ -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...