static void bus_release(struct kobject *kobj)
{
struct subsys_private *priv = to_subsys_private(kobj);
- struct bus_type *bus = priv->bus;
lockdep_unregister_key(&priv->lock_key);
kfree(priv);
- bus->p = NULL;
}
static const struct kobj_type bus_ktype = {
return -ENOMEM;
priv->bus = bus;
- bus->p = priv;
BLOCKING_INIT_NOTIFIER_HEAD(&priv->bus_notifier);
kset_unregister(&priv->subsys);
out:
kfree(priv);
- bus->p = NULL;
return retval;
}
EXPORT_SYMBOL_GPL(bus_register);