diff --git a/[refs] b/[refs] index ac38eb6d50ea..21d862d23c8f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c56d8a7362665d165ba992b6b7a8d6c13a26eafc +refs/heads/master: 2b31594a9523449b168946725689d039c80204de diff --git a/trunk/drivers/base/bus.c b/trunk/drivers/base/bus.c index 99dc5921e1dd..4ddb38b696fe 100644 --- a/trunk/drivers/base/bus.c +++ b/trunk/drivers/base/bus.c @@ -1193,13 +1193,15 @@ EXPORT_SYMBOL_GPL(subsys_interface_register); void subsys_interface_unregister(struct subsys_interface *sif) { - struct bus_type *subsys = sif->subsys; + struct bus_type *subsys; struct subsys_dev_iter iter; struct device *dev; - if (!sif) + if (!sif || !sif->subsys) return; + subsys = sif->subsys; + mutex_lock(&subsys->p->mutex); list_del_init(&sif->node); if (sif->remove_dev) {