From: Greg Kroah-Hartman <gregkh@suse.de>
To: linux-kernel@vger.kernel.org
Cc: Dave Young <hidave.darkstar@gmail.com>,
Stefan Richter <stefanr@s5r6.in-berlin.de>,
Greg Kroah-Hartman <gregkh@suse.de>
Subject: [PATCH 188/196] ieee1394: use class iteration api
Date: Thu, 24 Jan 2008 23:33:37 -0800 [thread overview]
Message-ID: <1201246425-5058-109-git-send-email-gregkh@suse.de> (raw)
In-Reply-To: <20080125071127.GA4860@kroah.com>
From: Dave Young <hidave.darkstar@gmail.com>
Convert to use the class iteration api.
Signed-off-by: Dave Young <hidave.darkstar@gmail.com>
Cc: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/ieee1394/nodemgr.c | 314 +++++++++++++++++++++++++-------------------
1 files changed, 176 insertions(+), 138 deletions(-)
diff --git a/drivers/ieee1394/nodemgr.c b/drivers/ieee1394/nodemgr.c
index 90dc75b..511e432 100644
--- a/drivers/ieee1394/nodemgr.c
+++ b/drivers/ieee1394/nodemgr.c
@@ -727,33 +727,31 @@ static int nodemgr_bus_match(struct device * dev, struct device_driver * drv)
static DEFINE_MUTEX(nodemgr_serialize_remove_uds);
+static int __match_ne(struct device *dev, void *data)
+{
+ struct unit_directory *ud;
+ struct node_entry *ne = (struct node_entry *)data;
+
+ ud = container_of(dev, struct unit_directory, unit_dev);
+ return ud->ne == ne;
+}
+
static void nodemgr_remove_uds(struct node_entry *ne)
{
struct device *dev;
- struct unit_directory *tmp, *ud;
-
- /* Iteration over nodemgr_ud_class.devices has to be protected by
- * nodemgr_ud_class.sem, but device_unregister() will eventually
- * take nodemgr_ud_class.sem too. Therefore pick out one ud at a time,
- * release the semaphore, and then unregister the ud. Since this code
- * may be called from other contexts besides the knodemgrds, protect the
- * gap after release of the semaphore by nodemgr_serialize_remove_uds.
+ struct unit_directory *ud;
+
+ /* Use class_find device to iterate the devices. Since this code
+ * may be called from other contexts besides the knodemgrds,
+ * protect it by nodemgr_serialize_remove_uds.
*/
mutex_lock(&nodemgr_serialize_remove_uds);
for (;;) {
- ud = NULL;
- down(&nodemgr_ud_class.sem);
- list_for_each_entry(dev, &nodemgr_ud_class.devices, node) {
- tmp = container_of(dev, struct unit_directory,
- unit_dev);
- if (tmp->ne == ne) {
- ud = tmp;
- break;
- }
- }
- up(&nodemgr_ud_class.sem);
- if (ud == NULL)
+ dev = class_find_device(&nodemgr_ud_class, ne, __match_ne);
+ if (!dev)
break;
+ ud = container_of(dev, struct unit_directory, unit_dev);
+ put_device(dev);
device_unregister(&ud->unit_dev);
device_unregister(&ud->device);
}
@@ -882,45 +880,66 @@ fail_alloc:
return NULL;
}
+static int __match_ne_guid(struct device *dev, void *data)
+{
+ struct node_entry *ne;
+ u64 *guid = (u64 *)data;
+
+ ne = container_of(dev, struct node_entry, node_dev);
+ return ne->guid == *guid;
+}
static struct node_entry *find_entry_by_guid(u64 guid)
{
struct device *dev;
- struct node_entry *ne, *ret_ne = NULL;
-
- down(&nodemgr_ne_class.sem);
- list_for_each_entry(dev, &nodemgr_ne_class.devices, node) {
- ne = container_of(dev, struct node_entry, node_dev);
+ struct node_entry *ne;
- if (ne->guid == guid) {
- ret_ne = ne;
- break;
- }
- }
- up(&nodemgr_ne_class.sem);
+ dev = class_find_device(&nodemgr_ne_class, &guid, __match_ne_guid);
+ if (!dev)
+ return NULL;
+ ne = container_of(dev, struct node_entry, node_dev);
+ put_device(dev);
- return ret_ne;
+ return ne;
}
+struct match_nodeid_param {
+ struct hpsb_host *host;
+ nodeid_t nodeid;
+};
+
+static int __match_ne_nodeid(struct device *dev, void *data)
+{
+ int found = 0;
+ struct node_entry *ne;
+ struct match_nodeid_param *param = (struct match_nodeid_param *)data;
+
+ if (!dev)
+ goto ret;
+ ne = container_of(dev, struct node_entry, node_dev);
+ if (ne->host == param->host && ne->nodeid == param->nodeid)
+ found = 1;
+ret:
+ return found;
+}
static struct node_entry *find_entry_by_nodeid(struct hpsb_host *host,
nodeid_t nodeid)
{
struct device *dev;
- struct node_entry *ne, *ret_ne = NULL;
+ struct node_entry *ne;
+ struct match_nodeid_param param;
- down(&nodemgr_ne_class.sem);
- list_for_each_entry(dev, &nodemgr_ne_class.devices, node) {
- ne = container_of(dev, struct node_entry, node_dev);
+ param.host = host;
+ param.nodeid = nodeid;
- if (ne->host == host && ne->nodeid == nodeid) {
- ret_ne = ne;
- break;
- }
- }
- up(&nodemgr_ne_class.sem);
+ dev = class_find_device(&nodemgr_ne_class, ¶m, __match_ne_nodeid);
+ if (!dev)
+ return NULL;
+ ne = container_of(dev, struct node_entry, node_dev);
+ put_device(dev);
- return ret_ne;
+ return ne;
}
@@ -1370,107 +1389,109 @@ static void nodemgr_node_scan(struct host_info *hi, int generation)
}
}
-
-static void nodemgr_suspend_ne(struct node_entry *ne)
+static int __nodemgr_driver_suspend(struct device *dev, void *data)
{
- struct device *dev;
struct unit_directory *ud;
struct device_driver *drv;
+ struct node_entry *ne = (struct node_entry *)data;
int error;
- HPSB_DEBUG("Node suspended: ID:BUS[" NODE_BUS_FMT "] GUID[%016Lx]",
- NODE_BUS_ARGS(ne->host, ne->nodeid), (unsigned long long)ne->guid);
+ ud = container_of(dev, struct unit_directory, unit_dev);
+ if (ud->ne == ne) {
+ drv = get_driver(ud->device.driver);
+ if (drv) {
+ error = 1; /* release if suspend is not implemented */
+ if (drv->suspend) {
+ down(&ud->device.sem);
+ error = drv->suspend(&ud->device, PMSG_SUSPEND);
+ up(&ud->device.sem);
+ }
+ if (error)
+ device_release_driver(&ud->device);
+ put_driver(drv);
+ }
+ }
- ne->in_limbo = 1;
- WARN_ON(device_create_file(&ne->device, &dev_attr_ne_in_limbo));
+ return 0;
+}
- down(&nodemgr_ud_class.sem);
- list_for_each_entry(dev, &nodemgr_ud_class.devices, node) {
- ud = container_of(dev, struct unit_directory, unit_dev);
- if (ud->ne != ne)
- continue;
+static int __nodemgr_driver_resume(struct device *dev, void *data)
+{
+ struct unit_directory *ud;
+ struct device_driver *drv;
+ struct node_entry *ne = (struct node_entry *)data;
+ ud = container_of(dev, struct unit_directory, unit_dev);
+ if (ud->ne == ne) {
drv = get_driver(ud->device.driver);
- if (!drv)
- continue;
-
- error = 1; /* release if suspend is not implemented */
- if (drv->suspend) {
- down(&ud->device.sem);
- error = drv->suspend(&ud->device, PMSG_SUSPEND);
- up(&ud->device.sem);
+ if (drv) {
+ if (drv->resume) {
+ down(&ud->device.sem);
+ drv->resume(&ud->device);
+ up(&ud->device.sem);
+ }
+ put_driver(drv);
}
- if (error)
- device_release_driver(&ud->device);
- put_driver(drv);
}
- up(&nodemgr_ud_class.sem);
-}
+ return 0;
+}
-static void nodemgr_resume_ne(struct node_entry *ne)
+static void nodemgr_suspend_ne(struct node_entry *ne)
{
- struct device *dev;
- struct unit_directory *ud;
- struct device_driver *drv;
+ HPSB_DEBUG("Node suspended: ID:BUS[" NODE_BUS_FMT "] GUID[%016Lx]",
+ NODE_BUS_ARGS(ne->host, ne->nodeid),
+ (unsigned long long)ne->guid);
- ne->in_limbo = 0;
- device_remove_file(&ne->device, &dev_attr_ne_in_limbo);
+ ne->in_limbo = 1;
+ WARN_ON(device_create_file(&ne->device, &dev_attr_ne_in_limbo));
- down(&nodemgr_ud_class.sem);
- list_for_each_entry(dev, &nodemgr_ud_class.devices, node) {
- ud = container_of(dev, struct unit_directory, unit_dev);
- if (ud->ne != ne)
- continue;
+ class_for_each_device(&nodemgr_ud_class, ne, __nodemgr_driver_suspend);
+}
- drv = get_driver(ud->device.driver);
- if (!drv)
- continue;
- if (drv->resume) {
- down(&ud->device.sem);
- drv->resume(&ud->device);
- up(&ud->device.sem);
- }
- put_driver(drv);
- }
- up(&nodemgr_ud_class.sem);
+static void nodemgr_resume_ne(struct node_entry *ne)
+{
+ ne->in_limbo = 0;
+ device_remove_file(&ne->device, &dev_attr_ne_in_limbo);
+ class_for_each_device(&nodemgr_ud_class, ne, __nodemgr_driver_resume);
HPSB_DEBUG("Node resumed: ID:BUS[" NODE_BUS_FMT "] GUID[%016Lx]",
NODE_BUS_ARGS(ne->host, ne->nodeid), (unsigned long long)ne->guid);
}
-
-static void nodemgr_update_pdrv(struct node_entry *ne)
+static int __nodemgr_update_pdrv(struct device *dev, void *data)
{
- struct device *dev;
struct unit_directory *ud;
struct device_driver *drv;
struct hpsb_protocol_driver *pdrv;
+ struct node_entry *ne = (struct node_entry *)data;
int error;
- down(&nodemgr_ud_class.sem);
- list_for_each_entry(dev, &nodemgr_ud_class.devices, node) {
- ud = container_of(dev, struct unit_directory, unit_dev);
- if (ud->ne != ne)
- continue;
-
+ ud = container_of(dev, struct unit_directory, unit_dev);
+ if (ud->ne == ne) {
drv = get_driver(ud->device.driver);
- if (!drv)
- continue;
-
- error = 0;
- pdrv = container_of(drv, struct hpsb_protocol_driver, driver);
- if (pdrv->update) {
- down(&ud->device.sem);
- error = pdrv->update(ud);
- up(&ud->device.sem);
+ if (drv) {
+ error = 0;
+ pdrv = container_of(drv, struct hpsb_protocol_driver,
+ driver);
+ if (pdrv->update) {
+ down(&ud->device.sem);
+ error = pdrv->update(ud);
+ up(&ud->device.sem);
+ }
+ if (error)
+ device_release_driver(&ud->device);
+ put_driver(drv);
}
- if (error)
- device_release_driver(&ud->device);
- put_driver(drv);
}
- up(&nodemgr_ud_class.sem);
+
+ return 0;
+}
+
+static void nodemgr_update_pdrv(struct node_entry *ne)
+{
+ class_for_each_device(&nodemgr_ud_class, ne, __nodemgr_update_pdrv);
}
@@ -1529,13 +1550,31 @@ static void nodemgr_probe_ne(struct host_info *hi, struct node_entry *ne, int ge
put_device(dev);
}
+struct probe_param {
+ struct host_info *hi;
+ int generation;
+};
+
+static int __nodemgr_node_probe(struct device *dev, void *data)
+{
+ struct probe_param *param = (struct probe_param *)data;
+ struct node_entry *ne;
+
+ ne = container_of(dev, struct node_entry, node_dev);
+ if (!ne->needs_probe)
+ nodemgr_probe_ne(param->hi, ne, param->generation);
+ if (ne->needs_probe)
+ nodemgr_probe_ne(param->hi, ne, param->generation);
+ return 0;
+}
static void nodemgr_node_probe(struct host_info *hi, int generation)
{
struct hpsb_host *host = hi->host;
- struct device *dev;
- struct node_entry *ne;
+ struct probe_param param;
+ param.hi = hi;
+ param.generation = generation;
/* Do some processing of the nodes we've probed. This pulls them
* into the sysfs layer if needed, and can result in processing of
* unit-directories, or just updating the node and it's
@@ -1545,19 +1584,7 @@ static void nodemgr_node_probe(struct host_info *hi, int generation)
* while probes are time-consuming. (Well, those probes need some
* improvement...) */
- down(&nodemgr_ne_class.sem);
- list_for_each_entry(dev, &nodemgr_ne_class.devices, node) {
- ne = container_of(dev, struct node_entry, node_dev);
- if (!ne->needs_probe)
- nodemgr_probe_ne(hi, ne, generation);
- }
- list_for_each_entry(dev, &nodemgr_ne_class.devices, node) {
- ne = container_of(dev, struct node_entry, node_dev);
- if (ne->needs_probe)
- nodemgr_probe_ne(hi, ne, generation);
- }
- up(&nodemgr_ne_class.sem);
-
+ class_for_each_device(&nodemgr_ne_class, ¶m, __nodemgr_node_probe);
/* If we had a bus reset while we were scanning the bus, it is
* possible that we did not probe all nodes. In that case, we
@@ -1757,6 +1784,22 @@ exit:
return 0;
}
+struct host_iter_param {
+ void *data;
+ int (*cb)(struct hpsb_host *, void *);
+};
+
+static int __nodemgr_for_each_host(struct device *dev, void *data)
+{
+ struct hpsb_host *host;
+ struct host_iter_param *hip = (struct host_iter_param *)data;
+ int error = 0;
+
+ host = container_of(dev, struct hpsb_host, host_dev);
+ error = hip->cb(host, hip->data);
+
+ return error;
+}
/**
* nodemgr_for_each_host - call a function for each IEEE 1394 host
* @data: an address to supply to the callback
@@ -1771,18 +1814,13 @@ exit:
*/
int nodemgr_for_each_host(void *data, int (*cb)(struct hpsb_host *, void *))
{
- struct device *dev;
- struct hpsb_host *host;
- int error = 0;
-
- down(&hpsb_host_class.sem);
- list_for_each_entry(dev, &hpsb_host_class.devices, node) {
- host = container_of(dev, struct hpsb_host, host_dev);
+ struct host_iter_param hip;
+ int error;
- if ((error = cb(host, data)))
- break;
- }
- up(&hpsb_host_class.sem);
+ hip.cb = cb;
+ hip.data = data;
+ error = class_for_each_device(&hpsb_host_class, &hip,
+ __nodemgr_for_each_host);
return error;
}
--
1.5.3.8
next prev parent reply other threads:[~2008-01-25 8:08 UTC|newest]
Thread overview: 272+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-25 7:11 [GIT PATCH] driver core patches against 2.6.24 Greg KH
2008-01-25 7:08 ` [PATCH 001/196] Chinese: Add the known_regression URI to the HOWTO Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 002/196] Chinese: rephrase English introduction in HOWTO Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 004/196] Chinese: add translation of SubmittingPatches Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 005/196] Chinese: add translation of SubmittingDrivers Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 006/196] Chinese: add translation of oops-tracing.txt Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 007/196] Chinese: add translation of stable_kernel_rules.txt Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 008/196] Chinese: add translation of volatile-considered-harmful.txt Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 009/196] Chinese: add translation of sparse.txt Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 010/196] Chinese: add translation of Codingstyle Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 011/196] sysfs: Fix a copy-n-paste typo in comment Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 012/196] nozomi driver Greg Kroah-Hartman
2008-01-25 8:31 ` Jan Engelhardt
2008-01-25 11:56 ` Stefan Richter
2008-01-25 12:44 ` [PATCH 012/196 ver2] " Frank Seidel
2008-01-25 18:55 ` Greg KH
2008-01-25 19:33 ` Frank Seidel
2008-01-25 19:43 ` Greg KH
2008-01-25 20:14 ` Frank Seidel
2008-01-25 20:13 ` Frank Seidel
2008-01-25 12:44 ` [PATCH 012/196] " Frank Seidel
2008-01-25 13:21 ` Jan Engelhardt
2008-01-25 17:02 ` Valdis.Kletnieks
2008-01-25 7:09 ` [PATCH 013/196] Documentation: Replace obsolete "driverfs" with "sysfs" Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 014/196] kobject: remove incorrect comment in kobject_rename Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 015/196] PM: Acquire device locks on suspend Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 016/196] kref: add kref_set() Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 017/196] aoechr: Convert from class_device to device Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 018/196] coda: convert struct class_device to struct device Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 019/196] DMA: Convert from class_device to device for DMA engine Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 020/196] IDE: Convert from class_device to device for ide-tape Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 021/196] ISDN: Convert from class_device to device for ISDN capi Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 022/196] adb: Convert from class_device to device Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 023/196] MCP_UCB1200: " Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 024/196] mtd: Convert from class_device to device for MTD/mtdchar Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 025/196] paride: Convert from class_device to device for block/paride Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 026/196] pktcdvd: Convert from class_device to device for block/pktcdvd Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 027/196] tifm: Convert from class_device to device for TI flash media Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 028/196] cosa: Convert from class_device to device for cosa sync driver Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 029/196] ecryptfs: clean up attribute mess Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 030/196] driver core: Make the dev_*() family of macros in device.h complete Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 031/196] sysfs: create optimal relative symlink targets Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 032/196] sysfs: remove SPIN_LOCK_UNLOCKED Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 033/196] kobject: convert ibmasm to use kref, not kobject Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 034/196] kobject: convert hvc_console " Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 035/196] kobject: convert hvcs " Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 036/196] kobject: convert icom " Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 037/196] kobject: fix up kobject_set_name to use kvasprintf Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 038/196] kobject: make kobject_cleanup be static Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 039/196] kobject: add kobject_init_ng function Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 040/196] kobject: add kobject_add_ng function Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 041/196] kobject: add kobject_init_and_add function Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 042/196] kobject: remove struct kobj_type from struct kset Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 043/196] kobject: remove kobj_set_kset_s as no one is using it anymore Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 044/196] kset: add kset_create_and_add function Greg Kroah-Hartman
2008-01-25 9:09 ` Dave Young
2008-01-25 17:51 ` Greg KH
2008-01-25 7:09 ` [PATCH 045/196] kobject: add kobject_create_and_add function Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 046/196] kobject: get rid of kobject_add_dir Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 047/196] kobject: get rid of kobject_kset_add_dir Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 048/196] kobject: convert fuse to use kobject_create Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 049/196] kobject: convert securityfs " Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 050/196] kobject: convert debugfs " Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 051/196] kobject: convert configfs " Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 052/196] kset: convert ecryptfs to use kset_create Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 053/196] kobject: convert main fs kobject to use kobject_create Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 054/196] kset: convert gfs2 to use kset_create Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 055/196] kset: convert gfs2 dlm " Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 056/196] kset: convert " Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 057/196] kset: convert pci hotplug to use kset_create_and_add Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 058/196] kset: remove decl_subsys_name Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 059/196] kset: convert kernel_subsys to use kset_create Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 060/196] kset: convert drivers/base/bus.c " Greg Kroah-Hartman
2008-01-25 7:09 ` [PATCH 061/196] kset: convert drivers/base/class.c " Greg Kroah-Hartman
2008-01-25 7:10 ` [PATCH 062/196] kset: convert drivers/base/firmware.c " Greg Kroah-Hartman
2008-01-25 7:10 ` [PATCH 063/196] kset: convert /sys/devices " Greg Kroah-Hartman
2008-01-26 3:40 ` Olof Johansson
2008-01-26 5:24 ` Greg KH
2008-01-26 17:36 ` Olof Johansson
2008-01-25 7:10 ` [PATCH 064/196] kobject: convert /sys/hypervisor to use kobject_create Greg Kroah-Hartman
2008-01-25 7:10 ` [PATCH 065/196] kobject: convert s390 hypervisor " Greg Kroah-Hartman
2008-01-25 7:10 ` [PATCH 066/196] kset: convert /sys/devices/system to use kset_create Greg Kroah-Hartman
2008-01-25 7:10 ` [PATCH 067/196] kset: convert slub " Greg Kroah-Hartman
2008-01-25 18:16 ` Christoph Lameter
2008-01-25 7:10 ` [PATCH 068/196] kset: move /sys/slab to /sys/kernel/slab Greg Kroah-Hartman
2008-01-25 7:10 ` [PATCH 069/196] kset: convert /sys/module to use kset_create Greg Kroah-Hartman
2008-01-25 7:10 ` [PATCH 070/196] kset: convert /sys/power " Greg Kroah-Hartman
2008-01-25 7:10 ` [PATCH 071/196] kset: convert struct bus_device->devices " Greg Kroah-Hartman
2008-01-25 7:10 ` [PATCH 072/196] kset: convert struct bus_device->drivers " Greg Kroah-Hartman
2008-01-25 7:10 ` [PATCH 073/196] Driver Core: add kobj_attribute handling Greg Kroah-Hartman
2008-01-25 7:10 ` [PATCH 074/196] Driver Core: switch all dynamic ksets to kobj_sysfs_ops Greg Kroah-Hartman
2008-01-25 7:10 ` [PATCH 075/196] fix struct user_info export's sysfs interaction Greg Kroah-Hartman
2008-01-25 7:10 ` [PATCH 076/196] ecryptfs: remove version_str file from sysfs Greg Kroah-Hartman
2008-01-25 8:25 ` Jeff Garzik
2008-01-25 17:54 ` Greg KH
2008-01-25 19:14 ` Michael Halcrow
2008-01-25 22:04 ` Jeff Garzik
2008-01-25 7:10 ` [PATCH 077/196] efivars: make new_var and del_var binary sysfs files Greg Kroah-Hartman
2008-01-25 7:10 ` [PATCH 078/196] kobject: convert efivars to kobj_attr interface Greg Kroah-Hartman
2008-01-25 7:10 ` [PATCH 079/196] firmware: export firmware_kset so that people can use that instead of the braindead firmware_register interface Greg Kroah-Hartman
2008-01-25 7:10 ` [PATCH 080/196] kset: convert efivars to use kset_create for the efi subsystem Greg Kroah-Hartman
2008-01-25 7:10 ` [PATCH 081/196] kset: convert efivars to use kset_create for the vars sub-subsystem Greg Kroah-Hartman
2008-01-25 7:27 ` [PATCH 001/196] Chinese: Add the known_regression URI to the HOWTO Greg Kroah-Hartman
2008-01-25 7:27 ` [PATCH 002/196] Chinese: rephrase English introduction in HOWTO Greg Kroah-Hartman
2008-01-25 7:27 ` [PATCH 004/196] Chinese: add translation of SubmittingPatches Greg Kroah-Hartman
2008-01-25 7:28 ` [PATCH 080/196] kset: convert efivars to use kset_create for the efi subsystem Greg Kroah-Hartman
2008-01-25 7:28 ` [PATCH 081/196] kset: convert efivars to use kset_create for the vars sub-subsystem Greg Kroah-Hartman
2008-01-25 7:31 ` [PATCH 080/196] kset: convert efivars to use kset_create for the efi subsystem Greg Kroah-Hartman
2008-01-25 7:31 ` [PATCH 081/196] kset: convert efivars to use kset_create for the vars sub-subsystem Greg Kroah-Hartman
2008-01-25 7:31 ` [PATCH 082/196] kobject: convert arm/mach-omap1/pm.c to kobj_attr interface Greg Kroah-Hartman
2008-01-25 7:31 ` [PATCH 083/196] kobject: convert pseries/power.c " Greg Kroah-Hartman
2008-01-25 7:31 ` [PATCH 084/196] kobject: convert s390 ipl.c " Greg Kroah-Hartman
2008-01-25 7:31 ` [PATCH 085/196] kset: convert s390 ipl.c to use kset_create Greg Kroah-Hartman
2008-01-25 12:20 ` Heiko Carstens
2008-01-25 17:48 ` Greg KH
2008-01-25 23:11 ` Heiko Carstens
2008-01-26 5:33 ` Greg KH
2008-01-25 7:31 ` [PATCH 086/196] kobject: convert parisc/pdc_stable to kobj_attr interface Greg Kroah-Hartman
2008-01-25 7:31 ` [PATCH 087/196] kset: convert parisc/pdc_stable.c to use kset_create Greg Kroah-Hartman
2008-01-25 7:31 ` [PATCH 088/196] Driver Core: kill subsys_attribute and default sysfs ops Greg Kroah-Hartman
2008-01-25 7:31 ` [PATCH 089/196] kset: convert edd to use kset_create Greg Kroah-Hartman
2008-01-25 7:31 ` [PATCH 090/196] kobject: convert /sys/firmware/acpi/ to use kobject_create Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 091/196] firmware: remove firmware_(un)register() Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 092/196] firmware: change firmware_kset to firmware_kobj Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 093/196] kset: convert ocfs2 to use kset_create Greg Kroah-Hartman
2008-01-25 20:38 ` Mark Fasheh
2008-01-25 7:32 ` [PATCH 094/196] kset: convert block_subsys " Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 095/196] kset: remove decl_subsys macro Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 096/196] kobject: convert kernel_kset to be a kobject Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 097/196] kobject: remove subsystem_(un)register functions Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 098/196] kobject: clean up rpadlpar horrid sysfs abuse Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 099/196] kobject: convert ecryptfs to use kobject_create Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 100/196] kobject: convert efivars " Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 101/196] kobject: convert parisc/pdc_stable " Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 102/196] driver core: clean up shutdown.c Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 103/196] driver core: clean up device_shutdown Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 104/196] driver core: make /sys/power a kobject Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 105/196] kobject: grab the kset reference in kobject_add, not kobject_init Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 106/196] kobject: clean up debugging messages Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 107/196] UIO: fix kobject usage Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 108/196] Kobject: change net/bridge to use kobject_create_and_add Greg Kroah-Hartman
2008-01-25 16:19 ` Stephen Hemminger
2008-01-25 17:45 ` Greg KH
2008-01-28 22:09 ` Jan Engelhardt
2008-01-28 23:10 ` Greg KH
2008-01-25 7:32 ` [PATCH 109/196] Kobject: change GFS2 to use kobject_init_and_add Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 110/196] Kobject: change drivers/infiniband " Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 111/196] Kobject: change drivers/firmware/edd.c " Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 112/196] Kobject: change drivers/firmware/efivars.c " Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 113/196] Kobject: change drivers/cpufreq/cpufreq.c " Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 114/196] Kobject: change drivers/edac " Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 115/196] Kobject: change drivers/cpuidle/sysfs.c " Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 116/196] Kobject: change drivers/pci/hotplug/pci_hotplug_core.c " Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 117/196] Kobject: change drivers/base/sys.c " Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 118/196] Kobject: change arch/x86/kernel/cpu/intel_cacheinfo.c " Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 119/196] Kobject: change drivers/acpi/system.c to use kobject_create_and_add Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 120/196] Kobject: change drivers/block/pktcdvd.c to use kobject_init_and_add Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 121/196] Kobject: change arch/sh/kernel/cpu/sh4/sq.c " Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 122/196] Kobject: change drivers/net/ibmveth.c " Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 123/196] Kobject: change drivers/parisc/pdc_stable.c " Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 124/196] Kobject: change arch/ia64/kernel/topology.c " Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 125/196] Kobject: change drivers/md/md.c " Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 126/196] Kobject: change arch/x86/kernel/cpu/mcheck/mce_amd_64.c to use kobject_create_and_add Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 127/196] Kobject: change arch/x86/kernel/cpu/mcheck/mce_amd_64.c to use kobject_init_and_add Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 128/196] Kobject: the cris iop_fw_load.c code is broken Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 129/196] Kobject: convert drivers/base/class.c to use kobject_init/add_ng() Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 130/196] Kobject: convert drivers/base/core.c " Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 131/196] Kobject: convert drivers/net/iseries_veth.c " Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 132/196] Kobject: convert fs/char_dev.c " Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 133/196] Kobject: convert kernel/params.c " Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 134/196] Kobject: convert kernel/user.c " Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 135/196] Kobject: convert mm/slub.c " Greg Kroah-Hartman
2008-01-25 18:17 ` Christoph Lameter
2008-01-25 7:32 ` [PATCH 136/196] Kobject: convert net/bridge/br_if.c " Greg Kroah-Hartman
2008-01-25 16:20 ` Stephen Hemminger
2008-01-25 7:32 ` [PATCH 137/196] driver core: remove owner field from struct bus_type Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 138/196] driver core: add way to get to bus kset Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 139/196] driver core: add way to get to bus device klist Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 140/196] driver core: remove fields from struct bus_type Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 141/196] USB: use proper call to driver_create_file Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 142/196] PCMCIA: " Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 143/196] PCI: " Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 144/196] PCI: remove foolish code from pci-driver.c Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 145/196] driver core: Introduce default attribute groups Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 146/196] netiucv: Use device_driver " Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 147/196] zfcp: " Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 148/196] Infiniband: make ipath driver use default driver groups Greg Kroah-Hartman
2008-01-25 21:51 ` Roland Dreier
2008-01-25 22:11 ` Roland Dreier
2008-01-25 22:23 ` Greg KH
2008-01-25 7:32 ` [PATCH 149/196] Driver: add driver_add_kobj for looney iseries_veth driver Greg Kroah-Hartman
2008-01-25 7:32 ` [PATCH 150/196] Driver core: move the driver specific module code into the driver core Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 151/196] Driver core: move the static kobject out of struct driver Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 152/196] Driver core: clean up debugging messages Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 153/196] Kobject: change drivers/base/bus to use kobject_init_and_add Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 154/196] Driver core: fix race in __device_release_driver Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 155/196] Driver core: fix class glue dir cleanup logic Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 156/196] sysfs: fix /sys/module/*/holders after sysfs logic change Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 157/196] Kobject: drop child->parent ref at unregistration Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 158/196] Driver core: convert block from raw kobjects to core devices Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 159/196] Kobject: convert block/elevator.c to use kobject_init/add_ng() Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 160/196] Kobject: convert block/ll_rw_blk.c " Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 161/196] Kobject: convert drivers/md/md.c " Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 162/196] Kobject: convert kernel/module.c " Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 163/196] Kobject: remove kobject_add() as no one uses it anymore Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 164/196] Kobject: rename kobject_add_ng() to kobject_add() Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 165/196] Kobject: remove kobject_init() as no one uses it anymore Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 166/196] Kobject: rename kobject_init_ng() to kobject_init() Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 167/196] Kobject: remove kobject_register() Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 168/196] Kset: remove kset_add function Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 169/196] Kobject: auto-cleanup on final unref Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 170/196] Modules: remove unneeded release function Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 171/196] Kobject: convert arch/* from kobject_unregister() to kobject_put() Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 172/196] Kobject: convert drivers/* " Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 173/196] Kobject: convert fs/* " Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 174/196] Kobject: convert remaining " Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 175/196] Kobject: remove kobject_unregister() as no one uses it anymore Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 176/196] Driver core: change sysdev classes to use dynamic kobject names Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 177/196] kobject: remove old, outdated documentation Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 178/196] kobject: update the kobject/kset documentation Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 179/196] kobject: add sample code for how to use kobjects in a simple manner Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 180/196] kobject: add sample code for how to use ksets/ktypes/kobjects Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 181/196] Driver core: use LIST_HEAD instead of call to INIT_LIST_HEAD in __init Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 182/196] sysfs: make SYSFS_DEPRECATED depend on SYSFS Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 183/196] driver core: fix build with SYSFS=n Greg Kroah-Hartman
2008-01-25 22:25 ` Ingo Molnar
2008-01-25 22:33 ` Andrew Morton
2008-01-25 22:38 ` Greg KH
2008-01-25 22:57 ` Ingo Molnar
2008-01-25 23:10 ` Greg KH
2008-01-25 23:18 ` Ingo Molnar
2008-01-25 23:27 ` Harvey Harrison
2008-01-25 7:33 ` [PATCH 184/196] Driver Core: constify the name passed to platform_device_register_simple Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 185/196] UIO: constify function pointer tables Greg Kroah-Hartman
2008-01-25 10:01 ` Hans-Jürgen Koch
2008-01-25 7:33 ` [PATCH 186/196] Driver core: Cleanup get_device_parent() in device_add() and device_move() Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 187/196] Driver Core: add class iteration api Greg Kroah-Hartman
2008-01-25 7:33 ` Greg Kroah-Hartman [this message]
2008-01-25 7:33 ` [PATCH 189/196] power supply : use " Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 190/196] rtc: " Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 191/196] scsi: " Greg Kroah-Hartman
2008-01-25 14:55 ` James Bottomley
2008-01-25 7:33 ` [PATCH 192/196] spi: " Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 193/196] Driver core: fix coding style issues in device.h Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 194/196] Kobject: fix coding style issues in kobject.h Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 195/196] Kobject: fix coding style issues in kobject c files Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 196/196] Driver core: coding style fixes Greg Kroah-Hartman
2008-01-25 18:44 ` [GIT PATCH] driver core patches against 2.6.24 Linus Torvalds
2008-01-25 18:52 ` Greg KH
2008-01-25 19:11 ` Linus Torvalds
2008-01-25 19:16 ` Greg KH
2008-01-25 19:27 ` Greg KH
2008-01-25 19:56 ` Jeremy Fitzhardinge
2008-01-25 21:20 ` Jon Masters
2008-01-25 21:49 ` Linus Torvalds
2008-01-25 21:58 ` Jeremy Fitzhardinge
2008-01-25 22:26 ` Peter Zijlstra
2008-01-26 0:05 ` Ingo Molnar
2008-01-26 0:27 ` Peter Zijlstra
2008-01-26 0:40 ` Jon Masters
2008-01-26 3:24 ` Valdis.Kletnieks
2008-01-28 8:26 ` Helge Hafting
2008-01-26 6:31 ` Arjan van de Ven
2008-01-25 19:42 ` Greg KH
2008-01-25 20:23 ` Linus Torvalds
2008-01-25 20:28 ` Greg KH
2008-01-26 4:50 ` Rusty Russell
2008-01-26 5:35 ` Greg KH
2008-01-26 9:19 ` Rusty Russell
2008-01-27 6:42 ` Linus Torvalds
2008-01-29 5:49 ` Rusty Russell
2008-01-25 21:11 ` Jon Masters
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=1201246425-5058-109-git-send-email-gregkh@suse.de \
--to=gregkh@suse.de \
--cc=hidave.darkstar@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=stefanr@s5r6.in-berlin.de \
/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
all inboxes | Powered by JetHome®