|
@@ -1666,11 +1666,15 @@ void i2c_del_adapter(struct i2c_adapter *adap)
|
|
|
/* device name is gone after device_unregister */
|
|
|
dev_dbg(&adap->dev, "adapter [%s] unregistered\n", adap->name);
|
|
|
|
|
|
- /* clean up the sysfs representation */
|
|
|
+ /* wait until all references to the device are gone
|
|
|
+ *
|
|
|
+ * FIXME: This is old code and should ideally be replaced by an
|
|
|
+ * alternative which results in decoupling the lifetime of the struct
|
|
|
+ * device from the i2c_adapter, like spi or netdev do. Any solution
|
|
|
+ * should be throughly tested with DEBUG_KOBJECT_RELEASE enabled!
|
|
|
+ */
|
|
|
init_completion(&adap->dev_released);
|
|
|
device_unregister(&adap->dev);
|
|
|
-
|
|
|
- /* wait for sysfs to drop all references */
|
|
|
wait_for_completion(&adap->dev_released);
|
|
|
|
|
|
/* free bus id */
|