From 1c7672d60f8deea4f2310b44a9641f505882a0da Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 16 May 2023 16:11:57 +0200 Subject: [PATCH] driver core: add printk debugging Helps when trying to find leaks --- drivers/base/bus.c | 2 ++ drivers/base/class.c | 3 +++ drivers/base/core.c | 3 +++ drivers/usb/core/endpoint.c | 1 + 4 files changed, 9 insertions(+) --- a/drivers/base/bus.c +++ b/drivers/base/bus.c @@ -208,6 +208,7 @@ static void bus_release(struct kobject * struct subsys_private *priv = to_subsys_private(kobj); lockdep_unregister_key(&priv->lock_key); + pr_debug("bus: '%s': %s\n", kobject_name(kobj), __func__); kfree(priv); } @@ -1191,6 +1192,7 @@ EXPORT_SYMBOL_GPL(subsys_interface_unreg static void system_root_device_release(struct device *dev) { + pr_debug("device: '%s': %s\n", dev_name(dev), __func__); kfree(dev); } --- a/drivers/base/class.c +++ b/drivers/base/class.c @@ -8,6 +8,8 @@ * Copyright (c) 2003-2004 IBM Corp. */ +#define DEBUG + #include #include #include @@ -573,6 +575,7 @@ EXPORT_SYMBOL_GPL(class_compat_register) */ void class_compat_unregister(struct class_compat *cls) { + pr_debug("class_compat: '%s': %s\n", kobject_name(cls->kobj), __func__); kobject_put(cls->kobj); kfree(cls); } --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -3852,6 +3852,7 @@ EXPORT_SYMBOL_GPL(device_del); void device_unregister(struct device *dev) { pr_debug("device: '%s': %s\n", dev_name(dev), __func__); + printk(KERN_ERR "GKH: device: '%s': %s\n", dev_name(dev), __func__); device_del(dev); put_device(dev); } @@ -4276,6 +4277,7 @@ EXPORT_SYMBOL_GPL(root_device_unregister static void device_create_release(struct device *dev) { pr_debug("device: '%s': %s\n", dev_name(dev), __func__); + printk(KERN_ERR "GKH: device: '%s': %s\n", dev_name(dev), __func__); kfree(dev); } @@ -4410,6 +4412,7 @@ void device_destroy(const struct class * dev = class_find_device_by_devt(class, devt); if (dev) { + printk(KERN_ERR "GKH: device: '%s': %s\n", dev_name(dev), __func__); put_device(dev); device_unregister(dev); } --- a/drivers/usb/core/endpoint.c +++ b/drivers/usb/core/endpoint.c @@ -138,6 +138,7 @@ static void ep_device_release(struct dev { struct ep_device *ep_dev = to_ep_device(dev); + printk(KERN_ERR "GKH: device: '%s': %s\n", dev_name(dev), __func__); kfree(ep_dev); }