ChangeSet 1.1152.2.7, 2003/08/15 10:12:59-07:00, greg@kroah.com Driver Core: add warnings if .release functions are not set for objects. This has been in the -mm tree for a while and has helped a lot in finding lots of improper users of the driver core. It also moves the driver core code up quite a few levels on the "Rusty's guide to kernel APIs". drivers/base/class.c | 6 ++++++ drivers/base/core.c | 6 ++++++ 2 files changed, 12 insertions(+) diff -Nru a/drivers/base/class.c b/drivers/base/class.c --- a/drivers/base/class.c Fri Aug 15 11:15:48 2003 +++ b/drivers/base/class.c Fri Aug 15 11:15:48 2003 @@ -194,6 +194,12 @@ if (cls->release) cls->release(cd); + else { + printk(KERN_ERR "Device class '%s' does not have a release() function, " + "it is broken and must be fixed.\n", + cd->class_id); + WARN_ON(1); + } } static struct kobj_type ktype_class_device = { diff -Nru a/drivers/base/core.c b/drivers/base/core.c --- a/drivers/base/core.c Fri Aug 15 11:15:48 2003 +++ b/drivers/base/core.c Fri Aug 15 11:15:48 2003 @@ -77,6 +77,12 @@ struct device * dev = to_dev(kobj); if (dev->release) dev->release(dev); + else { + printk(KERN_ERR "Device '%s' does not have a release() function, " + "it is broken and must be fixed.\n", + dev->bus_id); + WARN_ON(1); + } } static struct kobj_type ktype_device = {