diff options
-rw-r--r-- | drivers/base/core.c | 3 | ||||
-rw-r--r-- | include/linux/device.h | 11 |
2 files changed, 9 insertions, 5 deletions
diff --git a/drivers/base/core.c b/drivers/base/core.c index 20da3ad1696b..7b270a2e6ed5 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c | |||
@@ -1211,6 +1211,9 @@ void device_del(struct device *dev) | |||
1211 | */ | 1211 | */ |
1212 | if (platform_notify_remove) | 1212 | if (platform_notify_remove) |
1213 | platform_notify_remove(dev); | 1213 | platform_notify_remove(dev); |
1214 | if (dev->bus) | ||
1215 | blocking_notifier_call_chain(&dev->bus->p->bus_notifier, | ||
1216 | BUS_NOTIFY_REMOVED_DEVICE, dev); | ||
1214 | kobject_uevent(&dev->kobj, KOBJ_REMOVE); | 1217 | kobject_uevent(&dev->kobj, KOBJ_REMOVE); |
1215 | cleanup_device_parent(dev); | 1218 | cleanup_device_parent(dev); |
1216 | kobject_del(&dev->kobj); | 1219 | kobject_del(&dev->kobj); |
diff --git a/include/linux/device.h b/include/linux/device.h index 43d183aeb25b..d0d5c5db509d 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
@@ -181,13 +181,14 @@ extern int bus_unregister_notifier(struct bus_type *bus, | |||
181 | * with the device lock held in the core, so be careful. | 181 | * with the device lock held in the core, so be careful. |
182 | */ | 182 | */ |
183 | #define BUS_NOTIFY_ADD_DEVICE 0x00000001 /* device added */ | 183 | #define BUS_NOTIFY_ADD_DEVICE 0x00000001 /* device added */ |
184 | #define BUS_NOTIFY_DEL_DEVICE 0x00000002 /* device removed */ | 184 | #define BUS_NOTIFY_DEL_DEVICE 0x00000002 /* device to be removed */ |
185 | #define BUS_NOTIFY_BIND_DRIVER 0x00000003 /* driver about to be | 185 | #define BUS_NOTIFY_REMOVED_DEVICE 0x00000003 /* device removed */ |
186 | #define BUS_NOTIFY_BIND_DRIVER 0x00000004 /* driver about to be | ||
186 | bound */ | 187 | bound */ |
187 | #define BUS_NOTIFY_BOUND_DRIVER 0x00000004 /* driver bound to device */ | 188 | #define BUS_NOTIFY_BOUND_DRIVER 0x00000005 /* driver bound to device */ |
188 | #define BUS_NOTIFY_UNBIND_DRIVER 0x00000005 /* driver about to be | 189 | #define BUS_NOTIFY_UNBIND_DRIVER 0x00000006 /* driver about to be |
189 | unbound */ | 190 | unbound */ |
190 | #define BUS_NOTIFY_UNBOUND_DRIVER 0x00000006 /* driver is unbound | 191 | #define BUS_NOTIFY_UNBOUND_DRIVER 0x00000007 /* driver is unbound |
191 | from the device */ | 192 | from the device */ |
192 | 193 | ||
193 | extern struct kset *bus_get_kset(struct bus_type *bus); | 194 | extern struct kset *bus_get_kset(struct bus_type *bus); |