bus_remove_device: be more careful about incomplete initialization
Prevent bus_remove_device() from crashing if dev->knode_bus has not been initialized before it's called. This can happen if the device_add() ended up breaking out early due to an error, for example. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Acked-by: Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
08119e8966
Коммит
29591b92e1
|
@ -530,7 +530,8 @@ void bus_remove_device(struct device *dev)
|
|||
sysfs_remove_link(&dev->bus->p->devices_kset->kobj,
|
||||
dev->bus_id);
|
||||
device_remove_attrs(dev->bus, dev);
|
||||
klist_del(&dev->knode_bus);
|
||||
if (klist_node_attached(&dev->knode_bus))
|
||||
klist_del(&dev->knode_bus);
|
||||
|
||||
pr_debug("bus: '%s': remove device %s\n",
|
||||
dev->bus->name, dev->bus_id);
|
||||
|
|
Загрузка…
Ссылка в новой задаче