diff options
Diffstat (limited to 'drivers/base/bus.c')
-rw-r--r-- | drivers/base/bus.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/base/bus.c b/drivers/base/bus.c index 40fb12288ce2..26a06b801b5b 100644 --- a/drivers/base/bus.c +++ b/drivers/base/bus.c | |||
@@ -1194,13 +1194,15 @@ EXPORT_SYMBOL_GPL(subsys_interface_register); | |||
1194 | 1194 | ||
1195 | void subsys_interface_unregister(struct subsys_interface *sif) | 1195 | void subsys_interface_unregister(struct subsys_interface *sif) |
1196 | { | 1196 | { |
1197 | struct bus_type *subsys = sif->subsys; | 1197 | struct bus_type *subsys; |
1198 | struct subsys_dev_iter iter; | 1198 | struct subsys_dev_iter iter; |
1199 | struct device *dev; | 1199 | struct device *dev; |
1200 | 1200 | ||
1201 | if (!sif) | 1201 | if (!sif || !sif->subsys) |
1202 | return; | 1202 | return; |
1203 | 1203 | ||
1204 | subsys = sif->subsys; | ||
1205 | |||
1204 | mutex_lock(&subsys->p->mutex); | 1206 | mutex_lock(&subsys->p->mutex); |
1205 | list_del_init(&sif->node); | 1207 | list_del_init(&sif->node); |
1206 | if (sif->remove_dev) { | 1208 | if (sif->remove_dev) { |