This allows an easier way to get to the kset associated with a struct
bus_type (you have three to choose from...)  This will make it easier to
move these fields to be dynamic in a future patch.
Cc: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
 }
 EXPORT_SYMBOL_GPL(bus_unregister_notifier);
 
+struct kset *bus_get_kset(struct bus_type *bus)
+{
+       return &bus->subsys;
+}
+EXPORT_SYMBOL_GPL(bus_get_kset);
+
 int __init buses_init(void)
 {
        bus_kset = kset_create_and_add("bus", &bus_uevent_ops, NULL);
 
 static int __init pci_hotplug_init (void)
 {
        int result;
+       struct kset *pci_bus_kset;
+
+       pci_bus_kset = bus_get_kset(&pci_bus_type);
 
        pci_hotplug_slots_kset = kset_create_and_add("slots", NULL,
-                                                    &pci_bus_type.subsys.kobj);
+                                                    &pci_bus_kset->kobj);
        if (!pci_hotplug_slots_kset) {
                result = -ENOMEM;
                err("Register subsys error\n");
 
 #define BUS_NOTIFY_UNBIND_DRIVER       0x00000004 /* driver about to be
                                                      unbound */
 
+extern struct kset *bus_get_kset(struct bus_type *bus);
+
 struct device_driver {
        const char              * name;
        struct bus_type         * bus;