public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@suse.de>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@suse.de>, Kay Sievers <kay.sievers@vrfy.org>
Subject: [PATCH 32/54] driver core: add way to get to bus device klist
Date: Fri,  2 Nov 2007 16:59:10 -0700	[thread overview]
Message-ID: <1194047972-9850-32-git-send-email-gregkh@suse.de> (raw)
In-Reply-To: <20071102235758.GA9803@kroah.com>

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


  parent reply	other threads:[~2007-11-03  0:10 UTC|newest]

Thread overview: 88+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-02 23:57 [RFC] kobject and kset core changes and cleanups Greg KH
2007-11-02 23:58 ` [PATCH 01/54] ecryptfs: clean up attribute mess Greg Kroah-Hartman
2007-11-02 23:58 ` [PATCH 02/54] KOBJECT: remove struct kobj_type from struct kset Greg Kroah-Hartman
2007-11-02 23:58 ` [PATCH 03/54] KOBJECT: remove kobj_set_kset_s as no one is using it anymore Greg Kroah-Hartman
2007-11-02 23:58 ` [PATCH 04/54] kset: add kset_create_and_register function Greg Kroah-Hartman
2007-11-02 23:58 ` [PATCH 05/54] kset: convert fuse to use kset_create Greg Kroah-Hartman
2007-11-02 23:58 ` [PATCH 06/54] kset: convert securityfs " Greg Kroah-Hartman
2007-11-02 23:58 ` [PATCH 07/54] kset: convert debugfs " Greg Kroah-Hartman
2007-11-02 23:58 ` [PATCH 08/54] kset: convert configfs " Greg Kroah-Hartman
2007-11-02 23:58 ` [PATCH 09/54] kset: convert ecryptfs " Greg Kroah-Hartman
2007-11-02 23:58 ` [PATCH 10/54] kset: convert main fs kset " Greg Kroah-Hartman
2007-11-02 23:58 ` [PATCH 11/54] kset: convert gfs2 " Greg Kroah-Hartman
2007-11-02 23:58 ` [PATCH 12/54] kset: convert gfs2 dlm " Greg Kroah-Hartman
2007-11-02 23:58 ` [PATCH 13/54] kset: convert " Greg Kroah-Hartman
2007-11-02 23:58 ` [PATCH 14/54] kset: convert pci hotplug to use kset_create_and_register Greg Kroah-Hartman
2007-11-02 23:58 ` [PATCH 15/54] kset: remove decl_subsys_name Greg Kroah-Hartman
2007-11-02 23:58 ` [PATCH 16/54] kset: convert kernel_subsys to use kset_create Greg Kroah-Hartman
2007-11-02 23:58 ` [PATCH 17/54] kset: convert drivers/base/bus.c kset_create_and_register Greg Kroah-Hartman
2007-11-02 23:58 ` [PATCH 18/54] kset: convert drivers/base/class.c kset_create_and_register Greg Kroah-Hartman
2007-11-02 23:58 ` [PATCH 19/54] kset: convert drivers/base/firmware.c kset_create_and_register Greg Kroah-Hartman
2007-11-02 23:58 ` [PATCH 20/54] kset: convert /sys/devices to use kset_create Greg Kroah-Hartman
2007-11-02 23:58 ` [PATCH 21/54] kset: convert /sys/hypervisor " Greg Kroah-Hartman
2007-11-02 23:59 ` [PATCH 22/54] kset: convert /sys/devices/system " Greg Kroah-Hartman
2007-11-05 18:11   ` Cornelia Huck
2007-11-05 18:58     ` Greg KH
2007-11-05 19:11       ` Cornelia Huck
2007-11-05 20:03         ` Greg KH
2007-11-13 23:14           ` Andrew Morton
2007-11-14  0:01             ` Andrew Morton
2007-11-14  0:35               ` Greg KH
2007-11-14  7:35                 ` Andrew Morton
2007-11-02 23:59 ` [PATCH 23/54] kset: convert slub " Greg Kroah-Hartman
2007-11-02 23:59 ` [PATCH 24/54] kset: move /sys/slab to /sys/kernel/slab Greg Kroah-Hartman
2007-11-02 23:59 ` [PATCH 25/54] kset: convert /sys/module to use kset_create Greg Kroah-Hartman
2007-11-02 23:59 ` [PATCH 26/54] kset: convert /sys/power " Greg Kroah-Hartman
2007-11-02 23:59 ` [PATCH 27/54] kset: convert s390 hypervisor kset " Greg Kroah-Hartman
2007-11-05 13:18   ` Cornelia Huck
2007-11-05 17:06     ` Greg KH
2007-11-02 23:59 ` [PATCH 28/54] kset: convert struct bus_device->devices " Greg Kroah-Hartman
2007-11-02 23:59 ` [PATCH 29/54] kset: convert struct bus_device->drivers " Greg Kroah-Hartman
2007-11-02 23:59 ` [PATCH 30/54] driver core: remove owner field from struct bus_type Greg Kroah-Hartman
2007-11-02 23:59 ` [PATCH 31/54] driver core: add way to get to bus kset Greg Kroah-Hartman
2007-11-02 23:59 ` Greg Kroah-Hartman [this message]
2007-11-02 23:59 ` [PATCH 33/54] driver core: remove fields from struct bus_type Greg Kroah-Hartman
2007-11-05 10:33   ` Cornelia Huck
2007-11-05 17:00     ` Greg KH
2007-11-02 23:59 ` [PATCH 34/54] Driver Core: add kobj_attribute handling Greg Kroah-Hartman
2007-11-05 12:42   ` Cornelia Huck
2007-11-05 16:23     ` Kay Sievers
2007-11-05 17:11       ` Greg KH
2007-11-05 17:25         ` Kay Sievers
2007-11-05 17:43           ` Cornelia Huck
2007-11-05 18:07             ` Kay Sievers
2007-11-05 18:17               ` Cornelia Huck
2007-11-05 18:39                 ` Kay Sievers
2007-11-05 18:46                   ` Greg KH
2007-11-05 18:59                   ` Cornelia Huck
2007-11-05 20:01                     ` Greg KH
2007-11-02 23:59 ` [PATCH 35/54] Driver Core: switch all dynamic ksets to kobj_sysfs_ops Greg Kroah-Hartman
2007-11-02 23:59 ` [PATCH 36/54] fix struct user_info export's sysfs interaction Greg Kroah-Hartman
2007-11-02 23:59 ` [PATCH 37/54] ecryptfs: remove version_str file from sysfs Greg Kroah-Hartman
2007-11-02 23:59 ` [PATCH 38/54] efivars: remove new_var and del_var files " Greg Kroah-Hartman
2007-11-16 15:01   ` Matt Domsch
2007-11-27  5:47     ` Greg KH
2007-11-02 23:59 ` [PATCH 39/54] kobject: convert efivars to kobj_attr interface Greg Kroah-Hartman
2007-11-02 23:59 ` [PATCH 40/54] firmware: export firmware_kset so that people can use that instead of the braindead firmware_register interface Greg Kroah-Hartman
2007-11-02 23:59 ` [PATCH 41/54] kset: convert efivars to use kset_create for the efi subsystem Greg Kroah-Hartman
2007-11-02 23:59 ` [PATCH 42/54] kset: convert efivars to use kset_create for the vars sub-subsystem Greg Kroah-Hartman
2007-11-02 23:59 ` [PATCH 43/54] kobject: convert arm/mach-omap1/pm.c to kobj_attr interface Greg Kroah-Hartman
2007-11-02 23:59 ` [PATCH 44/54] kobject: convert pseries/power.c " Greg Kroah-Hartman
2007-11-02 23:59 ` [PATCH 45/54] kobject: convert s390 ipl.c " Greg Kroah-Hartman
2007-11-02 23:59 ` [PATCH 46/54] kset: convert s390 ipl.c to use kset_create Greg Kroah-Hartman
2007-11-05 10:27   ` Cornelia Huck
2007-11-05 17:05     ` Greg KH
2007-11-02 23:59 ` [PATCH 47/54] kobject: convert parisc/pdc_stable to kobj_attr interface Greg Kroah-Hartman
2007-11-02 23:59 ` [PATCH 48/54] kset: convert parisc/pdc_stable.c to use kset_create Greg Kroah-Hartman
2007-11-02 23:59 ` [PATCH 49/54] Driver Core: kill subsys_attribute and default sysfs ops Greg Kroah-Hartman
2007-11-02 23:59 ` [PATCH 50/54] kset: convert edd to use kset_create Greg Kroah-Hartman
2007-11-02 23:59 ` [PATCH 51/54] kset: convert acpi " Greg Kroah-Hartman
2007-11-02 23:59 ` [PATCH 52/54] firmware: remove firmware_(un)register() Greg Kroah-Hartman
2007-11-02 23:59 ` [PATCH 53/54] kset: convert ocfs2 to use kset_create Greg Kroah-Hartman
2007-11-02 23:59 ` [PATCH 54/54] kset: remove decl_subsys macro Greg Kroah-Hartman
2007-11-06  6:25 ` [RFC] kobject and kset core changes and cleanups Andrew Morton
2007-11-06  7:11 ` Andrew Morton
2007-11-06  8:14   ` Stephane Eranian
2007-11-06 21:15     ` Greg KH
2007-11-06 21:33       ` Stephane Eranian
2007-11-06  8:04 ` Andrew Morton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1194047972-9850-32-git-send-email-gregkh@suse.de \
    --to=gregkh@suse.de \
    --cc=kay.sievers@vrfy.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox