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 151/196] Driver core: move the static kobject out of struct driver
Date: Thu, 24 Jan 2008 23:33:00 -0800 [thread overview]
Message-ID: <1201246425-5058-72-git-send-email-gregkh@suse.de> (raw)
In-Reply-To: <20080125071127.GA4860@kroah.com>
This patch removes the kobject, and a few other driver-core-only fields
out of struct driver and into the driver core only. Now drivers can be
safely create on the stack or statically (like they currently are.)
Cc: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/base/base.h | 8 +++++
drivers/base/bus.c | 71 +++++++++++++++++++++++++---------------------
drivers/base/dd.c | 24 ++++++++--------
drivers/base/driver.c | 40 +++++++++++++++++---------
drivers/base/module.c | 12 ++++----
drivers/base/platform.c | 2 +-
include/linux/device.h | 16 ++++------
7 files changed, 99 insertions(+), 74 deletions(-)
diff --git a/drivers/base/base.h b/drivers/base/base.h
index 0547236..3b0f395 100644
--- a/drivers/base/base.h
+++ b/drivers/base/base.h
@@ -27,6 +27,14 @@ struct bus_type_private {
struct bus_type *bus;
};
+struct driver_private {
+ struct kobject kobj;
+ struct klist klist_devices;
+ struct klist_node knode_bus;
+ struct module_kobject *mkobj;
+ struct device_driver *driver;
+};
+#define to_driver(obj) container_of(obj, struct driver_private, kobj)
/* initialisation functions */
extern int devices_init(void);
diff --git a/drivers/base/bus.c b/drivers/base/bus.c
index 04d3850..aa0c986 100644
--- a/drivers/base/bus.c
+++ b/drivers/base/bus.c
@@ -3,6 +3,8 @@
*
* Copyright (c) 2002-3 Patrick Mochel
* Copyright (c) 2002-3 Open Source Development Labs
+ * Copyright (c) 2007 Greg Kroah-Hartman <gregkh@suse.de>
+ * Copyright (c) 2007 Novell Inc.
*
* This file is released under the GPLv2
*
@@ -24,7 +26,6 @@
*/
#define to_drv_attr(_attr) container_of(_attr, struct driver_attribute, attr)
-#define to_driver(obj) container_of(obj, struct device_driver, kobj)
static int __must_check bus_rescan_devices_helper(struct device *dev,
@@ -49,11 +50,11 @@ static ssize_t
drv_attr_show(struct kobject * kobj, struct attribute * attr, char * buf)
{
struct driver_attribute * drv_attr = to_drv_attr(attr);
- struct device_driver * drv = to_driver(kobj);
+ struct driver_private *drv_priv = to_driver(kobj);
ssize_t ret = -EIO;
if (drv_attr->show)
- ret = drv_attr->show(drv, buf);
+ ret = drv_attr->show(drv_priv->driver, buf);
return ret;
}
@@ -62,11 +63,11 @@ drv_attr_store(struct kobject * kobj, struct attribute * attr,
const char * buf, size_t count)
{
struct driver_attribute * drv_attr = to_drv_attr(attr);
- struct device_driver * drv = to_driver(kobj);
+ struct driver_private *drv_priv = to_driver(kobj);
ssize_t ret = -EIO;
if (drv_attr->store)
- ret = drv_attr->store(drv, buf, count);
+ ret = drv_attr->store(drv_priv->driver, buf, count);
return ret;
}
@@ -75,22 +76,12 @@ static struct sysfs_ops driver_sysfs_ops = {
.store = drv_attr_store,
};
-
-static void driver_release(struct kobject * kobj)
+static void driver_release(struct kobject *kobj)
{
- /*
- * Yes this is an empty release function, it is this way because struct
- * device is always a static object, not a dynamic one. Yes, this is
- * not nice and bad, but remember, drivers are code, reference counted
- * by the module count, not a device, which is really data. And yes,
- * in the future I do want to have all drivers be created dynamically,
- * and am working toward that goal, but it will take a bit longer...
- *
- * But do not let this example give _anyone_ the idea that they can
- * create a release function without any code in it at all, to do that
- * is almost always wrong. If you have any questions about this,
- * please send an email to <greg@kroah.com>
- */
+ struct driver_private *drv_priv = to_driver(kobj);
+
+ pr_debug("%s: freeing %s\n", __FUNCTION__, kobject_name(kobj));
+ kfree(drv_priv);
}
static struct kobj_type driver_ktype = {
@@ -350,7 +341,13 @@ struct device * bus_find_device(struct bus_type *bus,
static struct device_driver * next_driver(struct klist_iter * i)
{
struct klist_node * n = klist_next(i);
- return n ? container_of(n, struct device_driver, knode_bus) : NULL;
+ struct driver_private *drv_priv;
+
+ if (n) {
+ drv_priv = container_of(n, struct driver_private, knode_bus);
+ return drv_priv->driver;
+ }
+ return NULL;
}
/**
@@ -384,7 +381,7 @@ int bus_for_each_drv(struct bus_type * bus, struct device_driver * start,
return -EINVAL;
klist_iter_init_node(&bus->p->klist_drivers, &i,
- start ? &start->knode_bus : NULL);
+ start ? &start->p->knode_bus : NULL);
while ((drv = next_driver(&i)) && !error)
error = fn(drv, data);
klist_iter_exit(&i);
@@ -620,7 +617,7 @@ static ssize_t driver_uevent_store(struct device_driver *drv,
enum kobject_action action;
if (kobject_action_type(buf, count, &action) == 0)
- kobject_uevent(&drv->kobj, action);
+ kobject_uevent(&drv->p->kobj, action);
return count;
}
static DRIVER_ATTR(uevent, S_IWUSR, NULL, driver_uevent_store);
@@ -632,19 +629,29 @@ static DRIVER_ATTR(uevent, S_IWUSR, NULL, driver_uevent_store);
*/
int bus_add_driver(struct device_driver *drv)
{
- struct bus_type * bus = bus_get(drv->bus);
+ struct bus_type *bus;
+ struct driver_private *priv;
int error = 0;
+ bus = bus_get(drv->bus);
if (!bus)
return -EINVAL;
pr_debug("bus %s: add driver %s\n", bus->name, drv->name);
- error = kobject_set_name(&drv->kobj, "%s", drv->name);
+
+ priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ if (!priv)
+ return -ENOMEM;
+
+ error = kobject_set_name(&priv->kobj, "%s", drv->name);
if (error)
goto out_put_bus;
- drv->kobj.kset = bus->p->drivers_kset;
- drv->kobj.ktype = &driver_ktype;
- error = kobject_register(&drv->kobj);
+ priv->kobj.kset = bus->p->drivers_kset;
+ priv->kobj.ktype = &driver_ktype;
+ klist_init(&priv->klist_devices, NULL, NULL);
+ priv->driver = drv;
+ drv->p = priv;
+ error = kobject_register(&priv->kobj);
if (error)
goto out_put_bus;
@@ -653,7 +660,7 @@ int bus_add_driver(struct device_driver *drv)
if (error)
goto out_unregister;
}
- klist_add_tail(&drv->knode_bus, &bus->p->klist_drivers);
+ klist_add_tail(&priv->knode_bus, &bus->p->klist_drivers);
module_add_driver(drv->owner, drv);
error = driver_create_file(drv, &driver_attr_uevent);
@@ -676,7 +683,7 @@ int bus_add_driver(struct device_driver *drv)
return error;
out_unregister:
- kobject_unregister(&drv->kobj);
+ kobject_unregister(&priv->kobj);
out_put_bus:
bus_put(bus);
return error;
@@ -699,11 +706,11 @@ void bus_remove_driver(struct device_driver * drv)
remove_bind_files(drv);
driver_remove_attrs(drv->bus, drv);
driver_remove_file(drv, &driver_attr_uevent);
- klist_remove(&drv->knode_bus);
+ klist_remove(&drv->p->knode_bus);
pr_debug("bus %s: remove driver %s\n", drv->bus->name, drv->name);
driver_detach(drv);
module_remove_driver(drv);
- kobject_unregister(&drv->kobj);
+ kobject_unregister(&drv->p->kobj);
bus_put(drv->bus);
}
diff --git a/drivers/base/dd.c b/drivers/base/dd.c
index 7bf0e67..87a348c 100644
--- a/drivers/base/dd.c
+++ b/drivers/base/dd.c
@@ -11,6 +11,8 @@
*
* Copyright (c) 2002-5 Patrick Mochel
* Copyright (c) 2002-3 Open Source Development Labs
+ * Copyright (c) 2007 Greg Kroah-Hartman <gregkh@suse.de>
+ * Copyright (c) 2007 Novell Inc.
*
* This file is released under the GPLv2
*/
@@ -23,8 +25,6 @@
#include "base.h"
#include "power/power.h"
-#define to_drv(node) container_of(node, struct device_driver, kobj.entry)
-
static void driver_bound(struct device *dev)
{
@@ -41,20 +41,20 @@ static void driver_bound(struct device *dev)
blocking_notifier_call_chain(&dev->bus->p->bus_notifier,
BUS_NOTIFY_BOUND_DRIVER, dev);
- klist_add_tail(&dev->knode_driver, &dev->driver->klist_devices);
+ klist_add_tail(&dev->knode_driver, &dev->driver->p->klist_devices);
}
static int driver_sysfs_add(struct device *dev)
{
int ret;
- ret = sysfs_create_link(&dev->driver->kobj, &dev->kobj,
+ ret = sysfs_create_link(&dev->driver->p->kobj, &dev->kobj,
kobject_name(&dev->kobj));
if (ret == 0) {
- ret = sysfs_create_link(&dev->kobj, &dev->driver->kobj,
+ ret = sysfs_create_link(&dev->kobj, &dev->driver->p->kobj,
"driver");
if (ret)
- sysfs_remove_link(&dev->driver->kobj,
+ sysfs_remove_link(&dev->driver->p->kobj,
kobject_name(&dev->kobj));
}
return ret;
@@ -65,7 +65,7 @@ static void driver_sysfs_remove(struct device *dev)
struct device_driver *drv = dev->driver;
if (drv) {
- sysfs_remove_link(&drv->kobj, kobject_name(&dev->kobj));
+ sysfs_remove_link(&drv->p->kobj, kobject_name(&dev->kobj));
sysfs_remove_link(&dev->kobj, "driver");
}
}
@@ -339,15 +339,15 @@ void driver_detach(struct device_driver * drv)
struct device * dev;
for (;;) {
- spin_lock(&drv->klist_devices.k_lock);
- if (list_empty(&drv->klist_devices.k_list)) {
- spin_unlock(&drv->klist_devices.k_lock);
+ spin_lock(&drv->p->klist_devices.k_lock);
+ if (list_empty(&drv->p->klist_devices.k_list)) {
+ spin_unlock(&drv->p->klist_devices.k_lock);
break;
}
- dev = list_entry(drv->klist_devices.k_list.prev,
+ dev = list_entry(drv->p->klist_devices.k_list.prev,
struct device, knode_driver.n_node);
get_device(dev);
- spin_unlock(&drv->klist_devices.k_lock);
+ spin_unlock(&drv->p->klist_devices.k_lock);
if (dev->parent) /* Needed for USB */
down(&dev->parent->sem);
diff --git a/drivers/base/driver.c b/drivers/base/driver.c
index 633ae1d..5aacff2 100644
--- a/drivers/base/driver.c
+++ b/drivers/base/driver.c
@@ -3,6 +3,8 @@
*
* Copyright (c) 2002-3 Patrick Mochel
* Copyright (c) 2002-3 Open Source Development Labs
+ * Copyright (c) 2007 Greg Kroah-Hartman <gregkh@suse.de>
+ * Copyright (c) 2007 Novell Inc.
*
* This file is released under the GPLv2
*
@@ -15,7 +17,6 @@
#include "base.h"
#define to_dev(node) container_of(node, struct device, driver_list)
-#define to_drv(obj) container_of(obj, struct device_driver, kobj)
static struct device * next_device(struct klist_iter * i)
@@ -44,7 +45,7 @@ int driver_for_each_device(struct device_driver * drv, struct device * start,
if (!drv)
return -EINVAL;
- klist_iter_init_node(&drv->klist_devices, &i,
+ klist_iter_init_node(&drv->p->klist_devices, &i,
start ? &start->knode_driver : NULL);
while ((dev = next_device(&i)) && !error)
error = fn(dev, data);
@@ -80,7 +81,7 @@ struct device * driver_find_device(struct device_driver *drv,
if (!drv)
return NULL;
- klist_iter_init_node(&drv->klist_devices, &i,
+ klist_iter_init_node(&drv->p->klist_devices, &i,
(start ? &start->knode_driver : NULL));
while ((dev = next_device(&i)))
if (match(dev, data) && get_device(dev))
@@ -100,7 +101,7 @@ int driver_create_file(struct device_driver * drv, struct driver_attribute * att
{
int error;
if (get_driver(drv)) {
- error = sysfs_create_file(&drv->kobj, &attr->attr);
+ error = sysfs_create_file(&drv->p->kobj, &attr->attr);
put_driver(drv);
} else
error = -EINVAL;
@@ -117,7 +118,7 @@ int driver_create_file(struct device_driver * drv, struct driver_attribute * att
void driver_remove_file(struct device_driver * drv, struct driver_attribute * attr)
{
if (get_driver(drv)) {
- sysfs_remove_file(&drv->kobj, &attr->attr);
+ sysfs_remove_file(&drv->p->kobj, &attr->attr);
put_driver(drv);
}
}
@@ -143,7 +144,7 @@ int driver_add_kobj(struct device_driver *drv, struct kobject *kobj,
if (!name)
return -ENOMEM;
- return kobject_add_ng(kobj, &drv->kobj, "%s", name);
+ return kobject_add_ng(kobj, &drv->p->kobj, "%s", name);
}
EXPORT_SYMBOL_GPL(driver_add_kobj);
@@ -153,7 +154,15 @@ EXPORT_SYMBOL_GPL(driver_add_kobj);
*/
struct device_driver * get_driver(struct device_driver * drv)
{
- return drv ? to_drv(kobject_get(&drv->kobj)) : NULL;
+ if (drv) {
+ struct driver_private *priv;
+ struct kobject *kobj;
+
+ kobj = kobject_get(&drv->p->kobj);
+ priv = to_driver(kobj);
+ return priv->driver;
+ }
+ return NULL;
}
@@ -163,7 +172,7 @@ struct device_driver * get_driver(struct device_driver * drv)
*/
void put_driver(struct device_driver * drv)
{
- kobject_put(&drv->kobj);
+ kobject_put(&drv->p->kobj);
}
static int driver_add_groups(struct device_driver *drv,
@@ -174,10 +183,10 @@ static int driver_add_groups(struct device_driver *drv,
if (groups) {
for (i = 0; groups[i]; i++) {
- error = sysfs_create_group(&drv->kobj, groups[i]);
+ error = sysfs_create_group(&drv->p->kobj, groups[i]);
if (error) {
while (--i >= 0)
- sysfs_remove_group(&drv->kobj,
+ sysfs_remove_group(&drv->p->kobj,
groups[i]);
break;
}
@@ -193,7 +202,7 @@ static void driver_remove_groups(struct device_driver *drv,
if (groups)
for (i = 0; groups[i]; i++)
- sysfs_remove_group(&drv->kobj, groups[i]);
+ sysfs_remove_group(&drv->p->kobj, groups[i]);
}
@@ -214,7 +223,6 @@ int driver_register(struct device_driver * drv)
(drv->bus->shutdown && drv->shutdown)) {
printk(KERN_WARNING "Driver '%s' needs updating - please use bus_type methods\n", drv->name);
}
- klist_init(&drv->klist_devices, NULL, NULL);
ret = bus_add_driver(drv);
if (ret)
return ret;
@@ -250,8 +258,12 @@ void driver_unregister(struct device_driver * drv)
struct device_driver *driver_find(const char *name, struct bus_type *bus)
{
struct kobject *k = kset_find_obj(bus->p->drivers_kset, name);
- if (k)
- return to_drv(k);
+ struct driver_private *priv;
+
+ if (k) {
+ priv = to_driver(k);
+ return priv->driver;
+ }
return NULL;
}
diff --git a/drivers/base/module.c b/drivers/base/module.c
index cad07be..103be9c 100644
--- a/drivers/base/module.c
+++ b/drivers/base/module.c
@@ -50,7 +50,7 @@ void module_add_driver(struct module *mod, struct device_driver *drv)
if (mkobj) {
mk = container_of(mkobj, struct module_kobject, kobj);
/* remember our module structure */
- drv->mkobj = mk;
+ drv->p->mkobj = mk;
/* kset_find_obj took a reference */
kobject_put(mkobj);
}
@@ -60,11 +60,11 @@ void module_add_driver(struct module *mod, struct device_driver *drv)
return;
/* Don't check return codes; these calls are idempotent */
- no_warn = sysfs_create_link(&drv->kobj, &mk->kobj, "module");
+ no_warn = sysfs_create_link(&drv->p->kobj, &mk->kobj, "module");
driver_name = make_driver_name(drv);
if (driver_name) {
module_create_drivers_dir(mk);
- no_warn = sysfs_create_link(mk->drivers_dir, &drv->kobj,
+ no_warn = sysfs_create_link(mk->drivers_dir, &drv->p->kobj,
driver_name);
kfree(driver_name);
}
@@ -78,12 +78,12 @@ void module_remove_driver(struct device_driver *drv)
if (!drv)
return;
- sysfs_remove_link(&drv->kobj, "module");
+ sysfs_remove_link(&drv->p->kobj, "module");
if (drv->owner)
mk = &drv->owner->mkobj;
- else if (drv->mkobj)
- mk = drv->mkobj;
+ else if (drv->p->mkobj)
+ mk = drv->p->mkobj;
if (mk && mk->drivers_dir) {
driver_name = make_driver_name(drv);
if (driver_name) {
diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index d56a05f..bdd59e8 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -499,7 +499,7 @@ int __init_or_module platform_driver_probe(struct platform_driver *drv,
*/
spin_lock(&platform_bus_type.p->klist_drivers.k_lock);
drv->probe = NULL;
- if (code == 0 && list_empty(&drv->driver.klist_devices.k_list))
+ if (code == 0 && list_empty(&drv->driver.p->klist_devices.k_list))
retval = -ENODEV;
drv->driver.probe = platform_drv_probe_fail;
spin_unlock(&platform_bus_type.p->klist_drivers.k_lock);
diff --git a/include/linux/device.h b/include/linux/device.h
index 721ee31..92ba3a8 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -32,6 +32,7 @@
struct device;
struct device_driver;
+struct driver_private;
struct class;
struct class_device;
struct bus_type;
@@ -113,16 +114,11 @@ 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;
- struct bus_type * bus;
-
- struct kobject kobj;
- struct klist klist_devices;
- struct klist_node knode_bus;
+ const char *name;
+ struct bus_type *bus;
- struct module * owner;
- const char * mod_name; /* used for built-in modules */
- struct module_kobject * mkobj;
+ struct module *owner;
+ const char *mod_name; /* used for built-in modules */
int (*probe) (struct device * dev);
int (*remove) (struct device * dev);
@@ -130,6 +126,8 @@ struct device_driver {
int (*suspend) (struct device * dev, pm_message_t state);
int (*resume) (struct device * dev);
struct attribute_group **groups;
+
+ struct driver_private *p;
};
--
1.5.3.8
next prev parent reply other threads:[~2008-01-25 8:34 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 ` Greg Kroah-Hartman [this message]
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 ` [PATCH 188/196] ieee1394: use " Greg Kroah-Hartman
2008-01-25 7:33 ` [PATCH 189/196] power supply : " 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-72-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
Powered by JetHome