diff options
Diffstat (limited to 'drivers/base/dd.c')
-rw-r--r-- | drivers/base/dd.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/base/dd.c b/drivers/base/dd.c index 742cbe6b042b..f0106875f01d 100644 --- a/drivers/base/dd.c +++ b/drivers/base/dd.c | |||
@@ -226,7 +226,7 @@ static int __device_attach(struct device_driver *drv, void *data) | |||
226 | * pair is found, break out and return. | 226 | * pair is found, break out and return. |
227 | * | 227 | * |
228 | * Returns 1 if the device was bound to a driver; | 228 | * Returns 1 if the device was bound to a driver; |
229 | * 0 if no matching device was found; | 229 | * 0 if no matching driver was found; |
230 | * -ENODEV if the device is not registered. | 230 | * -ENODEV if the device is not registered. |
231 | * | 231 | * |
232 | * When called for a USB interface, @dev->parent->sem must be held. | 232 | * When called for a USB interface, @dev->parent->sem must be held. |
@@ -320,6 +320,10 @@ static void __device_release_driver(struct device *dev) | |||
320 | devres_release_all(dev); | 320 | devres_release_all(dev); |
321 | dev->driver = NULL; | 321 | dev->driver = NULL; |
322 | klist_remove(&dev->p->knode_driver); | 322 | klist_remove(&dev->p->knode_driver); |
323 | if (dev->bus) | ||
324 | blocking_notifier_call_chain(&dev->bus->p->bus_notifier, | ||
325 | BUS_NOTIFY_UNBOUND_DRIVER, | ||
326 | dev); | ||
323 | } | 327 | } |
324 | } | 328 | } |
325 | 329 | ||