[PATCH 0/4] treewide: add missing put_device calls

From: Levente Kurusa
Date: Fri Dec 13 2013 - 14:22:57 EST


Hi,

This is just the beginning of patchset-set that aims to fix possible
problems caused by not calling put_device() if device_register() fails.

The root cause for the need to call put_device() is that the underlying
kobject still has a reference count of 1. Thus, device.release() will not
be called and the device will just sit there waiting for a put_device().
Adding the put_device() also removes the need for the call to kfree() as most
release functions already call kfree() on the container of the device.

While these have not been experienced, they are potential issues and thus
they need to be fixed. Also, they are a few more files that have the same
kind of issue, those will be fixed if these are accepted.

(Sorry for the noise, I messed up my SMTP server so it didn't reach LKML)

The patchset consists of the following patches:

net: phy: call put_device on device_register() failure
eisa: call put_device if device_register fails
backlight: lcd: call put_device if device_register fails
w1: call put_device if device_register fails


diffstat as follows:

drivers/eisa/eisa-bus.c | 4 +++-
drivers/net/phy/mdio_bus.c | 1 +
drivers/video/backlight/lcd.c | 2 +-
drivers/w1/w1_int.c | 5 ++---
4 files changed, 7 insertions(+), 5 deletions(-)

--
Regards,
Levente Kurusa
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/