X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=drivers%2Fbase%2Fbus.c;h=26a06b801b5b24d3e77f3b8465026314c64624d6;hb=853a0231e057c04255a848f6998f84faaa635c58;hp=40fb12288ce258263cd4a995273f0bcc882df2ab;hpb=81bc3009e061cfd0e62e03a6761cce39c750b65e;p=~andy%2Flinux diff --git a/drivers/base/bus.c b/drivers/base/bus.c index 40fb12288ce..26a06b801b5 100644 --- a/drivers/base/bus.c +++ b/drivers/base/bus.c @@ -1194,13 +1194,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) {