diff options
| author | Greg Kroah-Hartman <greg@kroah.com> | 2004-02-03 21:48:53 -0800 |
|---|---|---|
| committer | Greg Kroah-Hartman <greg@kroah.com> | 2004-02-03 21:48:53 -0800 |
| commit | 9d6cc8f23f0e0d00a29faabf059e12cdd2c1becb (patch) | |
| tree | 35a99d7de988fb6683cd0fe59615d53edf62ae04 | |
| parent | a2db42827b775b1110b6cf29f530a8e0246ede19 (diff) | |
[PATCH] Driver core: remove device_unregister_wait() as it's a very bad idea.
| -rw-r--r-- | drivers/base/core.c | 23 | ||||
| -rw-r--r-- | include/linux/device.h | 2 |
2 files changed, 0 insertions, 25 deletions
diff --git a/drivers/base/core.c b/drivers/base/core.c index 84bc01e0ce59..6c84ff06026b 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -76,7 +76,6 @@ static struct sysfs_ops dev_sysfs_ops = { static void device_release(struct kobject * kobj) { struct device * dev = to_dev(kobj); - struct completion * c = dev->complete; if (dev->release) dev->release(dev); @@ -86,8 +85,6 @@ static void device_release(struct kobject * kobj) dev->bus_id); WARN_ON(1); } - if (c) - complete(c); } static struct kobj_type ktype_device = { @@ -355,25 +352,6 @@ void device_unregister(struct device * dev) /** - * device_unregister_wait - Unregister device and wait for it to be freed. - * @dev: Device to unregister. - * - * For the cases where the caller needs to wait for all references to - * be dropped from the device before continuing (e.g. modules with - * statically allocated devices), this function uses a completion struct - * to wait, along with a matching complete() in device_release() above. - */ - -void device_unregister_wait(struct device * dev) -{ - struct completion c; - init_completion(&c); - dev->complete = &c; - device_unregister(dev); - wait_for_completion(&c); -} - -/** * device_for_each_child - device child iterator. * @dev: parent struct device. * @data: data for the callback. @@ -421,7 +399,6 @@ EXPORT_SYMBOL(device_register); EXPORT_SYMBOL(device_del); EXPORT_SYMBOL(device_unregister); -EXPORT_SYMBOL(device_unregister_wait); EXPORT_SYMBOL(get_device); EXPORT_SYMBOL(put_device); EXPORT_SYMBOL(device_find); diff --git a/include/linux/device.h b/include/linux/device.h index c8f5aa7d9f5a..6da63dac06b0 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -265,7 +265,6 @@ struct device { struct list_head children; struct device * parent; - struct completion * complete; /* Notification for freeing device. */ struct kobject kobj; char bus_id[BUS_ID_SIZE]; /* position on parent bus */ @@ -313,7 +312,6 @@ dev_set_drvdata (struct device *dev, void *data) */ extern int device_register(struct device * dev); extern void device_unregister(struct device * dev); -extern void device_unregister_wait(struct device * dev); extern void device_initialize(struct device * dev); extern int device_add(struct device * dev); extern void device_del(struct device * dev); |
