From 9d6cc8f23f0e0d00a29faabf059e12cdd2c1becb Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 3 Feb 2004 21:48:53 -0800 Subject: [PATCH] Driver core: remove device_unregister_wait() as it's a very bad idea. --- drivers/base/core.c | 23 ----------------------- 1 file changed, 23 deletions(-) (limited to 'drivers/base/core.c') 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 = { @@ -354,25 +351,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. @@ -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); -- cgit v1.2.3