diff options
author | Jean Delvare <jdelvare@suse.de> | 2014-04-14 12:54:47 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-05-27 12:37:18 -0700 |
commit | 1bb6c08abfb653ce6e65d8ab4ddef403227afedf (patch) | |
tree | dba61f690d899880c97229b778f9fae838b9678a /drivers/base/dd.c | |
parent | 5cbb00cc4aae56378bf5376a62b4df3b89c28f92 (diff) | |
download | linux-1bb6c08abfb653ce6e65d8ab4ddef403227afedf.tar.gz linux-1bb6c08abfb653ce6e65d8ab4ddef403227afedf.tar.bz2 linux-1bb6c08abfb653ce6e65d8ab4ddef403227afedf.zip |
driver core: Move driver_data back to struct device
Having to allocate memory as part of dev_set_drvdata() is a problem
because that memory may never get freed if the device itself is not
created. So move driver_data back to struct device.
This is a partial revert of commit b4028437.
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/base/dd.c')
-rw-r--r-- | drivers/base/dd.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/drivers/base/dd.c b/drivers/base/dd.c index 62ec61e8f84a..d14b6e895896 100644 --- a/drivers/base/dd.c +++ b/drivers/base/dd.c @@ -594,22 +594,15 @@ void driver_detach(struct device_driver *drv) */ void *dev_get_drvdata(const struct device *dev) { - if (dev && dev->p) - return dev->p->driver_data; + if (dev) + return dev->driver_data; return NULL; } EXPORT_SYMBOL(dev_get_drvdata); int dev_set_drvdata(struct device *dev, void *data) { - int error; - - if (!dev->p) { - error = device_private_init(dev); - if (error) - return error; - } - dev->p->driver_data = data; + dev->driver_data = data; return 0; } EXPORT_SYMBOL(dev_set_drvdata); |