[PATCH 32/54] driver core: add way to get to bus device klist

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Greg Kroah-Hartman
Date: Friday, November 2, 2007 - 4:59 pm

This allows an easier way to get to the device klist 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.

The only user of this is the PCI core which horribly abuses this
interface to rearrange the order of the pci devices.  This should be
done using the existing bus device walking functions, but that's left
for future patches.

Cc: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
 drivers/base/bus.c     |    6 ++++++
 drivers/pci/probe.c    |   11 +++++++----
 include/linux/device.h |    1 +
 3 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/drivers/base/bus.c b/drivers/base/bus.c
index 3cd991f..e502ca6 100644
--- a/drivers/base/bus.c
+++ b/drivers/base/bus.c
@@ -942,6 +942,12 @@ struct kset *bus_get_kset(struct bus_type *bus)
 }
 EXPORT_SYMBOL_GPL(bus_get_kset);
 
+struct klist *bus_get_device_klist(struct bus_type *bus)
+{
+	return &bus->klist_devices;
+}
+EXPORT_SYMBOL_GPL(bus_get_device_klist);
+
 int __init buses_init(void)
 {
 	bus_kset = kset_create_and_register("bus", &bus_uevent_ops,
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 463a5a9..994e185 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -1251,16 +1251,19 @@ static void __init pci_sort_breadthfirst_klist(void)
 	struct klist_node *n;
 	struct device *dev;
 	struct pci_dev *pdev;
+	struct klist *device_klist;
 
-	spin_lock(&pci_bus_type.klist_devices.k_lock);
-	list_for_each_safe(pos, tmp, &pci_bus_type.klist_devices.k_list) {
+	device_klist = bus_get_device_klist(&pci_bus_type);
+
+	spin_lock(&device_klist->k_lock);
+	list_for_each_safe(pos, tmp, &device_klist->k_list) {
 		n = container_of(pos, struct klist_node, n_node);
 		dev = container_of(n, struct device, knode_bus);
 		pdev = to_pci_dev(dev);
 		pci_insertion_sort_klist(pdev, &sorted_devices);
 	}
-	list_splice(&sorted_devices, &pci_bus_type.klist_devices.k_list);
-	spin_unlock(&pci_bus_type.klist_devices.k_lock);
+	list_splice(&sorted_devices, &device_klist->k_list);
+	spin_unlock(&device_klist->k_lock);
 }
 
 static void __init pci_insertion_sort_devices(struct pci_dev *a, struct list_head *list)
diff --git a/include/linux/device.h b/include/linux/device.h
index 86eff9d..6d56a34 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -118,6 +118,7 @@ extern int bus_unregister_notifier(struct bus_type *bus,
 						      unbound */
 
 extern struct kset *bus_get_kset(struct bus_type *bus);
+extern struct klist *bus_get_device_klist(struct bus_type *bus);
 
 struct device_driver {
 	const char		* name;
-- 
1.5.3.4

-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 01/54] ecryptfs: clean up attribute mess, Greg Kroah-Hartman, (Fri Nov 2, 4:58 pm)
[PATCH 02/54] KOBJECT: remove struct kobj_type from struct ..., Greg Kroah-Hartman, (Fri Nov 2, 4:58 pm)
[PATCH 03/54] KOBJECT: remove kobj_set_kset_s as no one is ..., Greg Kroah-Hartman, (Fri Nov 2, 4:58 pm)
[PATCH 04/54] kset: add kset_create_and_register function, Greg Kroah-Hartman, (Fri Nov 2, 4:58 pm)
[PATCH 05/54] kset: convert fuse to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 4:58 pm)
[PATCH 06/54] kset: convert securityfs to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 4:58 pm)
[PATCH 07/54] kset: convert debugfs to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 4:58 pm)
[PATCH 08/54] kset: convert configfs to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 4:58 pm)
[PATCH 09/54] kset: convert ecryptfs to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 4:58 pm)
[PATCH 10/54] kset: convert main fs kset to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 4:58 pm)
[PATCH 11/54] kset: convert gfs2 to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 4:58 pm)
[PATCH 12/54] kset: convert gfs2 dlm to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 4:58 pm)
[PATCH 13/54] kset: convert dlm to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 4:58 pm)
[PATCH 14/54] kset: convert pci hotplug to use kset_create ..., Greg Kroah-Hartman, (Fri Nov 2, 4:58 pm)
[PATCH 15/54] kset: remove decl_subsys_name, Greg Kroah-Hartman, (Fri Nov 2, 4:58 pm)
[PATCH 16/54] kset: convert kernel_subsys to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 4:58 pm)
[PATCH 17/54] kset: convert drivers/base/bus.c kset_create ..., Greg Kroah-Hartman, (Fri Nov 2, 4:58 pm)
[PATCH 18/54] kset: convert drivers/base/class.c kset_crea ..., Greg Kroah-Hartman, (Fri Nov 2, 4:58 pm)
[PATCH 19/54] kset: convert drivers/base/firmware.c kset_c ..., Greg Kroah-Hartman, (Fri Nov 2, 4:58 pm)
[PATCH 20/54] kset: convert /sys/devices to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 4:58 pm)
[PATCH 21/54] kset: convert /sys/hypervisor to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 4:58 pm)
[PATCH 22/54] kset: convert /sys/devices/system to use kse ..., Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 23/54] kset: convert slub to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 24/54] kset: move /sys/slab to /sys/kernel/slab, Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 25/54] kset: convert /sys/module to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 26/54] kset: convert /sys/power to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 27/54] kset: convert s390 hypervisor kset to use ks ..., Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 30/54] driver core: remove owner field from struct ..., Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 31/54] driver core: add way to get to bus kset, Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 32/54] driver core: add way to get to bus device klist, Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 33/54] driver core: remove fields from struct bus_type, Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 34/54] Driver Core: add kobj_attribute handling, Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 35/54] Driver Core: switch all dynamic ksets to kob ..., Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 36/54] fix struct user_info export's sysfs interaction, Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 37/54] ecryptfs: remove version_str file from sysfs, Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 38/54] efivars: remove new_var and del_var files fr ..., Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 39/54] kobject: convert efivars to kobj_attr interface, Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 40/54] firmware: export firmware_kset so that peopl ..., Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 41/54] kset: convert efivars to use kset_create for ..., Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 42/54] kset: convert efivars to use kset_create for ..., Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 43/54] kobject: convert arm/mach-omap1/pm.c to kobj ..., Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 44/54] kobject: convert pseries/power.c to kobj_att ..., Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 45/54] kobject: convert s390 ipl.c to kobj_attr int ..., Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 46/54] kset: convert s390 ipl.c to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 47/54] kobject: convert parisc/pdc_stable to kobj_a ..., Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 48/54] kset: convert parisc/pdc_stable.c to use kse ..., Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 49/54] Driver Core: kill subsys_attribute and defau ..., Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 50/54] kset: convert edd to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 51/54] kset: convert acpi to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 52/54] firmware: remove firmware_(un)register(), Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 53/54] kset: convert ocfs2 to use kset_create, Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
[PATCH 54/54] kset: remove decl_subsys macro, Greg Kroah-Hartman, (Fri Nov 2, 4:59 pm)
Re: [RFC] kobject and kset core changes and cleanups, Andrew Morton, (Mon Nov 5, 11:25 pm)
Re: [RFC] kobject and kset core changes and cleanups, Andrew Morton, (Tue Nov 6, 12:11 am)
Re: [RFC] kobject and kset core changes and cleanups, Andrew Morton, (Tue Nov 6, 1:04 am)
Re: [RFC] kobject and kset core changes and cleanups, Stephane Eranian, (Tue Nov 6, 1:14 am)
Re: [RFC] kobject and kset core changes and cleanups, Stephane Eranian, (Tue Nov 6, 2:33 pm)