summaryrefslogtreecommitdiff
path: root/drivers/base
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/base')
-rw-r--r--drivers/base/bus.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/base/bus.c b/drivers/base/bus.c
index b831173071ec..105b6af924af 100644
--- a/drivers/base/bus.c
+++ b/drivers/base/bus.c
@@ -956,7 +956,16 @@ void bus_notify(struct device *dev, enum bus_notifier_event value)
struct kset *bus_get_kset(struct bus_type *bus)
{
- return &bus->p->subsys;
+ struct subsys_private *sp = bus_to_subsys(bus);
+ struct kset *kset;
+
+ if (!sp)
+ return NULL;
+
+ kset = &sp->subsys;
+ subsys_put(sp);
+
+ return kset;
}
EXPORT_SYMBOL_GPL(bus_get_kset);