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.

Cc: Greg Kroah-Hartman <gre...@linuxfoundation.org>
Cc: Rafael J. Wysocki <rafael.j.wyso...@intel.com>
Cc: Mika Westerberg <mika.westerb...@linux.intel.com>
Cc: Andy Shevchenko <andriy.shevche...@linux.intel.com>
Cc: Andreas Noever <andreas.noe...@gmail.com>
Signed-off-by: Lukas Wunner <lu...@wunner.de>
---
 drivers/base/core.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/base/core.c b/drivers/base/core.c
index 0a8bdad..70c5be5 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...
-- 
2.8.1

Reply via email to