[PATCH 140/196] driver core: remove fields from struct bus_type

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <linux-kernel@...>
Cc: Greg Kroah-Hartman <gregkh@...>, Kay Sievers <kay.sievers@...>
Date: Friday, January 25, 2008 - 3:32 am

struct bus_type is static everywhere in the kernel.  This moves the
kobject in the structure out of it, and a bunch of other private only to
the driver core fields are now moved to a private structure.  This lets
us dynamically create the backing kobject properly and gives us the
chance to be able to document to users exactly how to use the struct
bus_type as there are no fields they can improperly access.

Thanks to Kay for the build fixes on this patch.

Cc: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
 drivers/base/base.h     |   30 ++++++++++++-
 drivers/base/bus.c      |  116 ++++++++++++++++++++++++++---------------------
 drivers/base/core.c     |    6 +-
 drivers/base/dd.c       |    4 +-
 drivers/base/driver.c   |    2 +-
 drivers/base/platform.c |    4 +-
 include/linux/device.h  |   12 +----
 7 files changed, 104 insertions(+), 70 deletions(-)

diff --git a/drivers/base/base.h b/drivers/base/base.h
index 7e309a4..ca6d273 100644
--- a/drivers/base/base.h
+++ b/drivers/base/base.h
@@ -1,6 +1,34 @@
 
-/* initialisation functions */
+/**
+ * struct bus_type_private - structure to hold the private to the driver core portions of the bus_type structure.
+ *
+ * @subsys - the struct kset that defines this bus.  This is the main kobject
+ * @drivers_kset - the list of drivers associated with this bus
+ * @devices_kset - the list of devices associated with this bus
+ * @klist_devices - the klist to iterate over the @devices_kset
+ * @klist_drivers - the klist to iterate over the @drivers_kset
+ * @bus_notifier - the bus notifier list for anything that cares about things
+ * on this bus.
+ * @bus - pointer back to the struct bus_type that this structure is associated
+ * with.
+ *
+ * This structure is the one that is the actual kobject allowing struct
+ * bus_type to be statically allocated safely.  Nothing outside of the driver
+ * core should ever touch these fields.
+ */
+struct bus_type_private {
+	struct kset subsys;
+	struct kset *drivers_kset;
+	struct kset *devices_kset;
+	struct klist klist_devices;
+	struct klist klist_drivers;
+	struct blocking_notifier_head bus_notifier;
+	unsigned int drivers_autoprobe:1;
+	struct bus_type *bus;
+};
+
 
+/* initialisation functions */
 extern int devices_init(void);
 extern int buses_init(void);
 extern int classes_init(void);
diff --git a/drivers/base/bus.c b/drivers/base/bus.c
index 9c9027b..04d3850 100644
--- a/drivers/base/bus.c
+++ b/drivers/base/bus.c
@@ -17,7 +17,7 @@
 #include "power/power.h"
 
 #define to_bus_attr(_attr) container_of(_attr, struct bus_attribute, attr)
-#define to_bus(obj) container_of(obj, struct bus_type, subsys.kobj)
+#define to_bus(obj) container_of(obj, struct bus_type_private, subsys.kobj)
 
 /*
  * sysfs bindings for drivers
@@ -32,13 +32,17 @@ static int __must_check bus_rescan_devices_helper(struct device *dev,
 
 static struct bus_type *bus_get(struct bus_type *bus)
 {
-	return bus ? container_of(kset_get(&bus->subsys),
-				struct bus_type, subsys) : NULL;
+	if (bus) {
+		kset_get(&bus->p->subsys);
+		return bus;
+	}
+	return NULL;
 }
 
 static void bus_put(struct bus_type *bus)
 {
-	kset_put(&bus->subsys);
+	if (bus)
+		kset_put(&bus->p->subsys);
 }
 
 static ssize_t
@@ -104,11 +108,11 @@ static ssize_t
 bus_attr_show(struct kobject * kobj, struct attribute * attr, char * buf)
 {
 	struct bus_attribute * bus_attr = to_bus_attr(attr);
-	struct bus_type * bus = to_bus(kobj);
+	struct bus_type_private *bus_priv = to_bus(kobj);
 	ssize_t ret = 0;
 
 	if (bus_attr->show)
-		ret = bus_attr->show(bus, buf);
+		ret = bus_attr->show(bus_priv->bus, buf);
 	return ret;
 }
 
@@ -117,11 +121,11 @@ bus_attr_store(struct kobject * kobj, struct attribute * attr,
 	       const char * buf, size_t count)
 {
 	struct bus_attribute * bus_attr = to_bus_attr(attr);
-	struct bus_type * bus = to_bus(kobj);
+	struct bus_type_private *bus_priv = to_bus(kobj);
 	ssize_t ret = 0;
 
 	if (bus_attr->store)
-		ret = bus_attr->store(bus, buf, count);
+		ret = bus_attr->store(bus_priv->bus, buf, count);
 	return ret;
 }
 
@@ -134,7 +138,7 @@ int bus_create_file(struct bus_type * bus, struct bus_attribute * attr)
 {
 	int error;
 	if (bus_get(bus)) {
-		error = sysfs_create_file(&bus->subsys.kobj, &attr->attr);
+		error = sysfs_create_file(&bus->p->subsys.kobj, &attr->attr);
 		bus_put(bus);
 	} else
 		error = -EINVAL;
@@ -144,7 +148,7 @@ int bus_create_file(struct bus_type * bus, struct bus_attribute * attr)
 void bus_remove_file(struct bus_type * bus, struct bus_attribute * attr)
 {
 	if (bus_get(bus)) {
-		sysfs_remove_file(&bus->subsys.kobj, &attr->attr);
+		sysfs_remove_file(&bus->p->subsys.kobj, &attr->attr);
 		bus_put(bus);
 	}
 }
@@ -237,16 +241,16 @@ static DRIVER_ATTR(bind, S_IWUSR, NULL, driver_bind);
 
 static ssize_t show_drivers_autoprobe(struct bus_type *bus, char *buf)
 {
-	return sprintf(buf, "%d\n", bus->drivers_autoprobe);
+	return sprintf(buf, "%d\n", bus->p->drivers_autoprobe);
 }
 
 static ssize_t store_drivers_autoprobe(struct bus_type *bus,
 				       const char *buf, size_t count)
 {
 	if (buf[0] == '0')
-		bus->drivers_autoprobe = 0;
+		bus->p->drivers_autoprobe = 0;
 	else
-		bus->drivers_autoprobe = 1;
+		bus->p->drivers_autoprobe = 1;
 	return count;
 }
 
@@ -300,7 +304,7 @@ int bus_for_each_dev(struct bus_type * bus, struct device * start,
 	if (!bus)
 		return -EINVAL;
 
-	klist_iter_init_node(&bus->klist_devices, &i,
+	klist_iter_init_node(&bus->p->klist_devices, &i,
 			     (start ? &start->knode_bus : NULL));
 	while ((dev = next_device(&i)) && !error)
 		error = fn(dev, data);
@@ -333,7 +337,7 @@ struct device * bus_find_device(struct bus_type *bus,
 	if (!bus)
 		return NULL;
 
-	klist_iter_init_node(&bus->klist_devices, &i,
+	klist_iter_init_node(&bus->p->klist_devices, &i,
 			     (start ? &start->knode_bus : NULL));
 	while ((dev = next_device(&i)))
 		if (match(dev, data) && get_device(dev))
@@ -379,7 +383,7 @@ int bus_for_each_drv(struct bus_type * bus, struct device_driver * start,
 	if (!bus)
 		return -EINVAL;
 
-	klist_iter_init_node(&bus->klist_drivers, &i,
+	klist_iter_init_node(&bus->p->klist_drivers, &i,
 			     start ? &start->knode_bus : NULL);
 	while ((drv = next_driver(&i)) && !error)
 		error = fn(drv, data);
@@ -420,7 +424,7 @@ static void device_remove_attrs(struct bus_type * bus, struct device * dev)
 static int make_deprecated_bus_links(struct device *dev)
 {
 	return sysfs_create_link(&dev->kobj,
-				 &dev->bus->subsys.kobj, "bus");
+				 &dev->bus->p->subsys.kobj, "bus");
 }
 
 static void remove_deprecated_bus_links(struct device *dev)
@@ -449,12 +453,12 @@ int bus_add_device(struct device * dev)
 		error = device_add_attrs(bus, dev);
 		if (error)
 			goto out_put;
-		error = sysfs_create_link(&bus->devices_kset->kobj,
+		error = sysfs_create_link(&bus->p->devices_kset->kobj,
 						&dev->kobj, dev->bus_id);
 		if (error)
 			goto out_id;
 		error = sysfs_create_link(&dev->kobj,
-				&dev->bus->subsys.kobj, "subsystem");
+				&dev->bus->p->subsys.kobj, "subsystem");
 		if (error)
 			goto out_subsys;
 		error = make_deprecated_bus_links(dev);
@@ -466,7 +470,7 @@ int bus_add_device(struct device * dev)
 out_deprecated:
 	sysfs_remove_link(&dev->kobj, "subsystem");
 out_subsys:
-	sysfs_remove_link(&bus->devices_kset->kobj, dev->bus_id);
+	sysfs_remove_link(&bus->p->devices_kset->kobj, dev->bus_id);
 out_id:
 	device_remove_attrs(bus, dev);
 out_put:
@@ -488,11 +492,11 @@ void bus_attach_device(struct device * dev)
 
 	if (bus) {
 		dev->is_registered = 1;
-		if (bus->drivers_autoprobe)
+		if (bus->p->drivers_autoprobe)
 			ret = device_attach(dev);
 		WARN_ON(ret < 0);
 		if (ret >= 0)
-			klist_add_tail(&dev->knode_bus, &bus->klist_devices);
+			klist_add_tail(&dev->knode_bus, &bus->p->klist_devices);
 		else
 			dev->is_registered = 0;
 	}
@@ -512,7 +516,7 @@ void bus_remove_device(struct device * dev)
 	if (dev->bus) {
 		sysfs_remove_link(&dev->kobj, "subsystem");
 		remove_deprecated_bus_links(dev);
-		sysfs_remove_link(&dev->bus->devices_kset->kobj, dev->bus_id);
+		sysfs_remove_link(&dev->bus->p->devices_kset->kobj, dev->bus_id);
 		device_remove_attrs(dev->bus, dev);
 		if (dev->is_registered) {
 			dev->is_registered = 0;
@@ -638,18 +642,18 @@ int bus_add_driver(struct device_driver *drv)
 	error = kobject_set_name(&drv->kobj, "%s", drv->name);
 	if (error)
 		goto out_put_bus;
-	drv->kobj.kset = bus->drivers_kset;
+	drv->kobj.kset = bus->p->drivers_kset;
 	drv->kobj.ktype = &driver_ktype;
 	error = kobject_register(&drv->kobj);
 	if (error)
 		goto out_put_bus;
 
-	if (drv->bus->drivers_autoprobe) {
+	if (drv->bus->p->drivers_autoprobe) {
 		error = driver_attach(drv);
 		if (error)
 			goto out_unregister;
 	}
-	klist_add_tail(&drv->knode_bus, &bus->klist_drivers);
+	klist_add_tail(&drv->knode_bus, &bus->p->klist_drivers);
 	module_add_driver(drv->owner, drv);
 
 	error = driver_create_file(drv, &driver_attr_uevent);
@@ -828,7 +832,7 @@ static ssize_t bus_uevent_store(struct bus_type *bus,
 	enum kobject_action action;
 
 	if (kobject_action_type(buf, count, &action) == 0)
-		kobject_uevent(&bus->subsys.kobj, action);
+		kobject_uevent(&bus->p->subsys.kobj, action);
 	return count;
 }
 static BUS_ATTR(uevent, S_IWUSR, NULL, bus_uevent_store);
@@ -844,17 +848,26 @@ static BUS_ATTR(uevent, S_IWUSR, NULL, bus_uevent_store);
 int bus_register(struct bus_type * bus)
 {
 	int retval;
+	struct bus_type_private *priv;
+
+	priv = kzalloc(sizeof(struct bus_type_private), GFP_KERNEL);
+	if (!priv)
+		return -ENOMEM;
+
+	priv->bus = bus;
+	bus->p = priv;
 
-	BLOCKING_INIT_NOTIFIER_HEAD(&bus->bus_notifier);
+	BLOCKING_INIT_NOTIFIER_HEAD(&priv->bus_notifier);
 
-	retval = kobject_set_name(&bus->subsys.kobj, "%s", bus->name);
+	retval = kobject_set_name(&priv->subsys.kobj, "%s", bus->name);
 	if (retval)
 		goto out;
 
-	bus->subsys.kobj.kset = bus_kset;
-	bus->subsys.kobj.ktype = &bus_ktype;
+	priv->subsys.kobj.kset = bus_kset;
+	priv->subsys.kobj.ktype = &bus_ktype;
+	priv->drivers_autoprobe = 1;
 
-	retval = kset_register(&bus->subsys);
+	retval = kset_register(&priv->subsys);
 	if (retval)
 		goto out;
 
@@ -862,24 +875,23 @@ int bus_register(struct bus_type * bus)
 	if (retval)
 		goto bus_uevent_fail;
 
-	bus->devices_kset = kset_create_and_add("devices", NULL,
-						&bus->subsys.kobj);
-	if (!bus->devices_kset) {
+	priv->devices_kset = kset_create_and_add("devices", NULL,
+						 &priv->subsys.kobj);
+	if (!priv->devices_kset) {
 		retval = -ENOMEM;
 		goto bus_devices_fail;
 	}
 
-	bus->drivers_kset = kset_create_and_add("drivers", NULL,
-						&bus->subsys.kobj);
-	if (!bus->drivers_kset) {
+	priv->drivers_kset = kset_create_and_add("drivers", NULL,
+						 &priv->subsys.kobj);
+	if (!priv->drivers_kset) {
 		retval = -ENOMEM;
 		goto bus_drivers_fail;
 	}
 
-	klist_init(&bus->klist_devices, klist_devices_get, klist_devices_put);
-	klist_init(&bus->klist_drivers, NULL, NULL);
+	klist_init(&priv->klist_devices, klist_devices_get, klist_devices_put);
+	klist_init(&priv->klist_drivers, NULL, NULL);
 
-	bus->drivers_autoprobe = 1;
 	retval = add_probe_files(bus);
 	if (retval)
 		goto bus_probe_files_fail;
@@ -894,13 +906,14 @@ int bus_register(struct bus_type * bus)
 bus_attrs_fail:
 	remove_probe_files(bus);
 bus_probe_files_fail:
-	kset_unregister(bus->drivers_kset);
+	kset_unregister(bus->p->drivers_kset);
 bus_drivers_fail:
-	kset_unregister(bus->devices_kset);
+	kset_unregister(bus->p->devices_kset);
 bus_devices_fail:
 	bus_remove_file(bus, &bus_attr_uevent);
 bus_uevent_fail:
-	kset_unregister(&bus->subsys);
+	kset_unregister(&bus->p->subsys);
+	kfree(bus->p);
 out:
 	return retval;
 }
@@ -917,33 +930,34 @@ void bus_unregister(struct bus_type * bus)
 	pr_debug("bus %s: unregistering\n", bus->name);
 	bus_remove_attrs(bus);
 	remove_probe_files(bus);
-	kset_unregister(bus->drivers_kset);
-	kset_unregister(bus->devices_kset);
+	kset_unregister(bus->p->drivers_kset);
+	kset_unregister(bus->p->devices_kset);
 	bus_remove_file(bus, &bus_attr_uevent);
-	kset_unregister(&bus->subsys);
+	kset_unregister(&bus->p->subsys);
+	kfree(bus->p);
 }
 
 int bus_register_notifier(struct bus_type *bus, struct notifier_block *nb)
 {
-	return blocking_notifier_chain_register(&bus->bus_notifier, nb);
+	return blocking_notifier_chain_register(&bus->p->bus_notifier, nb);
 }
 EXPORT_SYMBOL_GPL(bus_register_notifier);
 
 int bus_unregister_notifier(struct bus_type *bus, struct notifier_block *nb)
 {
-	return blocking_notifier_chain_unregister(&bus->bus_notifier, nb);
+	return blocking_notifier_chain_unregister(&bus->p->bus_notifier, nb);
 }
 EXPORT_SYMBOL_GPL(bus_unregister_notifier);
 
 struct kset *bus_get_kset(struct bus_type *bus)
 {
-	return &bus->subsys;
+	return &bus->p->subsys;
 }
 EXPORT_SYMBOL_GPL(bus_get_kset);
 
 struct klist *bus_get_device_klist(struct bus_type *bus)
 {
-	return &bus->klist_devices;
+	return &bus->p->klist_devices;
 }
 EXPORT_SYMBOL_GPL(bus_get_device_klist);
 
diff --git a/drivers/base/core.c b/drivers/base/core.c
index beb3516..414a480 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -769,7 +769,7 @@ int device_add(struct device *dev)
 
 	/* notify clients of device entry (new way) */
 	if (dev->bus)
-		blocking_notifier_call_chain(&dev->bus->bus_notifier,
+		blocking_notifier_call_chain(&dev->bus->p->bus_notifier,
 					     BUS_NOTIFY_ADD_DEVICE, dev);
 
 	error = device_create_file(dev, &uevent_attr);
@@ -820,7 +820,7 @@ int device_add(struct device *dev)
 	dpm_sysfs_remove(dev);
  PMError:
 	if (dev->bus)
-		blocking_notifier_call_chain(&dev->bus->bus_notifier,
+		blocking_notifier_call_chain(&dev->bus->p->bus_notifier,
 					     BUS_NOTIFY_DEL_DEVICE, dev);
 	device_remove_attrs(dev);
  AttrsError:
@@ -999,7 +999,7 @@ void device_del(struct device * dev)
 	if (platform_notify_remove)
 		platform_notify_remove(dev);
 	if (dev->bus)
-		blocking_notifier_call_chain(&dev->bus->bus_notifier,
+		blocking_notifier_call_chain(&dev->bus->p->bus_notifier,
 					     BUS_NOTIFY_DEL_DEVICE, dev);
 	kobject_uevent(&dev->kobj, KOBJ_REMOVE);
 	kobject_del(&dev->kobj);
diff --git a/drivers/base/dd.c b/drivers/base/dd.c
index 7ac474d..7bf0e67 100644
--- a/drivers/base/dd.c
+++ b/drivers/base/dd.c
@@ -38,7 +38,7 @@ static void driver_bound(struct device *dev)
 		 dev->bus_id, dev->driver->name);
 
 	if (dev->bus)
-		blocking_notifier_call_chain(&dev->bus->bus_notifier,
+		blocking_notifier_call_chain(&dev->bus->p->bus_notifier,
 					     BUS_NOTIFY_BOUND_DRIVER, dev);
 
 	klist_add_tail(&dev->knode_driver, &dev->driver->klist_devices);
@@ -296,7 +296,7 @@ static void __device_release_driver(struct device * dev)
 		klist_remove(&dev->knode_driver);
 
 		if (dev->bus)
-			blocking_notifier_call_chain(&dev->bus->bus_notifier,
+			blocking_notifier_call_chain(&dev->bus->p->bus_notifier,
 						     BUS_NOTIFY_UNBIND_DRIVER,
 						     dev);
 
diff --git a/drivers/base/driver.c b/drivers/base/driver.c
index 1c9770d..f94be40 100644
--- a/drivers/base/driver.c
+++ b/drivers/base/driver.c
@@ -185,7 +185,7 @@ 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->drivers_kset, name);
+	struct kobject *k = kset_find_obj(bus->p->drivers_kset, name);
 	if (k)
 		return to_drv(k);
 	return NULL;
diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index fb56092..d56a05f 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -497,12 +497,12 @@ int __init_or_module platform_driver_probe(struct platform_driver *drv,
 	 * if the probe was successful, and make sure any forced probes of
 	 * new devices fail.
 	 */
-	spin_lock(&platform_bus_type.klist_drivers.k_lock);
+	spin_lock(&platform_bus_type.p->klist_drivers.k_lock);
 	drv->probe = NULL;
 	if (code == 0 && list_empty(&drv->driver.klist_devices.k_list))
 		retval = -ENODEV;
 	drv->driver.probe = platform_drv_probe_fail;
-	spin_unlock(&platform_bus_type.klist_drivers.k_lock);
+	spin_unlock(&platform_bus_type.p->klist_drivers.k_lock);
 
 	if (code != retval)
 		platform_driver_unregister(drv);
diff --git a/include/linux/device.h b/include/linux/device.h
index 62e695b..3f24bf4 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -35,6 +35,7 @@ struct device_driver;
 struct class;
 struct class_device;
 struct bus_type;
+struct bus_type_private;
 
 struct bus_attribute {
 	struct attribute	attr;
@@ -51,15 +52,6 @@ extern void bus_remove_file(struct bus_type *, struct bus_attribute *);
 
 struct bus_type {
 	const char		* name;
-
-	struct kset		subsys;
-	struct kset		*drivers_kset;
-	struct kset		*devices_kset;
-	struct klist		klist_devices;
-	struct klist		klist_drivers;
-
-	struct blocking_notifier_head bus_notifier;
-
 	struct bus_attribute	* bus_attrs;
 	struct device_attribute	* dev_attrs;
 	struct driver_attribute	* drv_attrs;
@@ -75,7 +67,7 @@ struct bus_type {
 	int (*resume_early)(struct device * dev);
 	int (*resume)(struct device * dev);
 
-	unsigned int drivers_autoprobe:1;
+	struct bus_type_private *p;
 };
 
 extern int __must_check bus_register(struct bus_type * bus);
-- 
1.5.3.8

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

Messages in current thread:
[GIT PATCH] driver core patches against 2.6.24, Greg KH, (Fri Jan 25, 3:11 am)
Re: [GIT PATCH] driver core patches against 2.6.24, Linus Torvalds, (Fri Jan 25, 2:44 pm)
Re: [GIT PATCH] driver core patches against 2.6.24, Jon Masters, (Fri Jan 25, 5:11 pm)
Re: [GIT PATCH] driver core patches against 2.6.24, Rusty Russell, (Sat Jan 26, 12:50 am)
Re: [GIT PATCH] driver core patches against 2.6.24, Linus Torvalds, (Sun Jan 27, 2:42 am)
Re: [GIT PATCH] driver core patches against 2.6.24, Rusty Russell, (Tue Jan 29, 1:49 am)
Re: [GIT PATCH] driver core patches against 2.6.24, Rusty Russell, (Sat Jan 26, 5:19 am)
Re: [GIT PATCH] driver core patches against 2.6.24, Linus Torvalds, (Fri Jan 25, 4:23 pm)
Re: [GIT PATCH] driver core patches against 2.6.24, Linus Torvalds, (Fri Jan 25, 3:11 pm)
Re: [GIT PATCH] driver core patches against 2.6.24, Arjan van de Ven, (Sat Jan 26, 2:31 am)
Re: [GIT PATCH] driver core patches against 2.6.24, Jeremy Fitzhardinge, (Fri Jan 25, 3:56 pm)
Re: [GIT PATCH] driver core patches against 2.6.24, Jon Masters, (Fri Jan 25, 5:20 pm)
Re: [GIT PATCH] driver core patches against 2.6.24, Linus Torvalds, (Fri Jan 25, 5:49 pm)
Re: [GIT PATCH] driver core patches against 2.6.24, Jeremy Fitzhardinge, (Fri Jan 25, 5:58 pm)
Re: [GIT PATCH] driver core patches against 2.6.24, Peter Zijlstra, (Fri Jan 25, 6:26 pm)
Re: [GIT PATCH] driver core patches against 2.6.24, Helge Hafting, (Mon Jan 28, 4:26 am)
Re: [GIT PATCH] driver core patches against 2.6.24, Ingo Molnar, (Fri Jan 25, 8:05 pm)
Re: [GIT PATCH] driver core patches against 2.6.24, Peter Zijlstra, (Fri Jan 25, 8:27 pm)
Re: [GIT PATCH] driver core patches against 2.6.24, Jon Masters, (Fri Jan 25, 8:40 pm)
[PATCH 143/196] PCI: use proper call to driver_create_file, Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 115/196] Kobject: change drivers/cpuidle/sysfs.c to u..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 164/196] Kobject: rename kobject_add_ng() to kobject_..., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 121/196] Kobject: change arch/sh/kernel/cpu/sh4/sq.c ..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 159/196] Kobject: convert block/elevator.c to use kob..., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 160/196] Kobject: convert block/ll_rw_blk.c to use ko..., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 183/196] driver core: fix build with SYSFS=n, Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
Re: [PATCH 183/196] driver core: fix build with SYSFS=n, Harvey Harrison, (Fri Jan 25, 7:27 pm)
Re: [PATCH 183/196] driver core: fix build with SYSFS=n, Andrew Morton, (Fri Jan 25, 6:33 pm)
[PATCH 145/196] driver core: Introduce default attribute gro..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 174/196] Kobject: convert remaining kobject_unregiste..., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 185/196] UIO: constify function pointer tables, Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 129/196] Kobject: convert drivers/base/class.c to use..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 166/196] Kobject: rename kobject_init_ng() to kobject..., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 155/196] Driver core: fix class glue dir cleanup logic, Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 151/196] Driver core: move the static kobject out of ..., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 178/196] kobject: update the kobject/kset documentation, Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 158/196] Driver core: convert block from raw kobjects..., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 126/196] Kobject: change arch/x86/kernel/cpu/mcheck/m..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 180/196] kobject: add sample code for how to use kset..., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 150/196] Driver core: move the driver specific module..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 162/196] Kobject: convert kernel/module.c to use kobj..., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 139/196] driver core: add way to get to bus device kl..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 135/196] Kobject: convert mm/slub.c to use kobject_in..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
Re: [PATCH 135/196] Kobject: convert mm/slub.c to use kobjec..., Christoph Lameter, (Fri Jan 25, 2:17 pm)
[PATCH 147/196] zfcp: Use device_driver default attribute gr..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 120/196] Kobject: change drivers/block/pktcdvd.c to u..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 125/196] Kobject: change drivers/md/md.c to use kobje..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 131/196] Kobject: convert drivers/net/iseries_veth.c ..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 128/196] Kobject: the cris iop_fw_load.c code is broken, Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 186/196] Driver core: Cleanup get_device_parent() in ..., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 156/196] sysfs: fix /sys/module/*/holders after sysfs..., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 132/196] Kobject: convert fs/char_dev.c to use kobjec..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 112/196] Kobject: change drivers/firmware/efivars.c t..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 146/196] netiucv: Use device_driver default attribute..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 187/196] Driver Core: add class iteration api, Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 138/196] driver core: add way to get to bus kset, Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 194/196] Kobject: fix coding style issues in kobject.h, Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 133/196] Kobject: convert kernel/params.c to use kobj..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 152/196] Driver core: clean up debugging messages, Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 195/196] Kobject: fix coding style issues in kobject ..., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 175/196] Kobject: remove kobject_unregister() as no o..., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 176/196] Driver core: change sysdev classes to use dy..., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 116/196] Kobject: change drivers/pci/hotplug/pci_hotp..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 193/196] Driver core: fix coding style issues in devi..., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 144/196] PCI: remove foolish code from pci-driver.c, Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 168/196] Kset: remove kset_add function, Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 173/196] Kobject: convert fs/* from kobject_unregiste..., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 117/196] Kobject: change drivers/base/sys.c to use ko..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 141/196] USB: use proper call to driver_create_file, Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 136/196] Kobject: convert net/bridge/br_if.c to use k..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
Re: [PATCH 136/196] Kobject: convert net/bridge/br_if.c to u..., Stephen Hemminger, (Fri Jan 25, 12:20 pm)
[PATCH 157/196] Kobject: drop child-&gt;parent ref at unregi..., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 114/196] Kobject: change drivers/edac to use kobject_..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 167/196] Kobject: remove kobject_register(), Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 142/196] PCMCIA: use proper call to driver_create_file, Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 130/196] Kobject: convert drivers/base/core.c to use ..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 127/196] Kobject: change arch/x86/kernel/cpu/mcheck/m..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 181/196] Driver core: use LIST_HEAD instead of call t..., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 137/196] driver core: remove owner field from struct ..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 171/196] Kobject: convert arch/* from kobject_unregis..., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 118/196] Kobject: change arch/x86/kernel/cpu/intel_ca..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 196/196] Driver core: coding style fixes, Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 165/196] Kobject: remove kobject_init() as no one use..., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 123/196] Kobject: change drivers/parisc/pdc_stable.c ..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 161/196] Kobject: convert drivers/md/md.c to use kobj..., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 140/196] driver core: remove fields from struct bus_t..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 148/196] Infiniband: make ipath driver use default dr..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 169/196] Kobject: auto-cleanup on final unref, Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 179/196] kobject: add sample code for how to use kobj..., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 119/196] Kobject: change drivers/acpi/system.c to use..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 191/196] scsi: use class iteration api, Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
Re: [PATCH 191/196] scsi: use class iteration api, James Bottomley, (Fri Jan 25, 10:55 am)
[PATCH 149/196] Driver: add driver_add_kobj for looney iseri..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 122/196] Kobject: change drivers/net/ibmveth.c to use..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 172/196] Kobject: convert drivers/* from kobject_unre..., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 111/196] Kobject: change drivers/firmware/edd.c to us..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 188/196] ieee1394: use class iteration api, Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 190/196] rtc: use class iteration api, Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 153/196] Kobject: change drivers/base/bus to use kobj..., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 124/196] Kobject: change arch/ia64/kernel/topology.c ..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 177/196] kobject: remove old, outdated documentation., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 182/196] sysfs: make SYSFS_DEPRECATED depend on SYSFS, Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 189/196] power supply : use class iteration api, Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 192/196] spi: use class iteration api, Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 170/196] Modules: remove unneeded release function, Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 134/196] Kobject: convert kernel/user.c to use kobjec..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 163/196] Kobject: remove kobject_add() as no one uses..., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 113/196] Kobject: change drivers/cpufreq/cpufreq.c to..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 154/196] Driver core: fix race in __device_release_dr..., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 184/196] Driver Core: constify the name passed to pla..., Greg Kroah-Hartman, (Fri Jan 25, 3:33 am)
[PATCH 110/196] Kobject: change drivers/infiniband to use ko..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 109/196] Kobject: change GFS2 to use kobject_init_and..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 108/196] Kobject: change net/bridge to use kobject_cr..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
Re: [PATCH 108/196] Kobject: change net/bridge to use kobjec..., Stephen Hemminger, (Fri Jan 25, 12:19 pm)
[PATCH 107/196] UIO: fix kobject usage, Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 106/196] kobject: clean up debugging messages, Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 105/196] kobject: grab the kset reference in kobject_..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 104/196] driver core: make /sys/power a kobject, Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 103/196] driver core: clean up device_shutdown, Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 102/196] driver core: clean up shutdown.c, Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 101/196] kobject: convert parisc/pdc_stable to use ko..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 100/196] kobject: convert efivars to use kobject_create, Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 099/196] kobject: convert ecryptfs to use kobject_cre..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 098/196] kobject: clean up rpadlpar horrid sysfs abuse, Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 097/196] kobject: remove subsystem_(un)register funct..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 096/196] kobject: convert kernel_kset to be a kobject, Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 095/196] kset: remove decl_subsys macro, Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 094/196] kset: convert block_subsys to use kset_create, Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 093/196] kset: convert ocfs2 to use kset_create, Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 092/196] firmware: change firmware_kset to firmware_k..., Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 091/196] firmware: remove firmware_(un)register(), Greg Kroah-Hartman, (Fri Jan 25, 3:32 am)
[PATCH 090/196] kobject: convert /sys/firmware/acpi/ to use ..., Greg Kroah-Hartman, (Fri Jan 25, 3:31 am)
[PATCH 089/196] kset: convert edd to use kset_create, Greg Kroah-Hartman, (Fri Jan 25, 3:31 am)
[PATCH 088/196] Driver Core: kill subsys_attribute and defau..., Greg Kroah-Hartman, (Fri Jan 25, 3:31 am)
[PATCH 087/196] kset: convert parisc/pdc_stable.c to use kse..., Greg Kroah-Hartman, (Fri Jan 25, 3:31 am)
[PATCH 086/196] kobject: convert parisc/pdc_stable to kobj_a..., Greg Kroah-Hartman, (Fri Jan 25, 3:31 am)
[PATCH 085/196] kset: convert s390 ipl.c to use kset_create, Greg Kroah-Hartman, (Fri Jan 25, 3:31 am)
[PATCH 084/196] kobject: convert s390 ipl.c to kobj_attr int..., Greg Kroah-Hartman, (Fri Jan 25, 3:31 am)
[PATCH 083/196] kobject: convert pseries/power.c to kobj_att..., Greg Kroah-Hartman, (Fri Jan 25, 3:31 am)
[PATCH 082/196] kobject: convert arm/mach-omap1/pm.c to kobj..., Greg Kroah-Hartman, (Fri Jan 25, 3:31 am)
[PATCH 081/196] kset: convert efivars to use kset_create for..., Greg Kroah-Hartman, (Fri Jan 25, 3:31 am)
[PATCH 080/196] kset: convert efivars to use kset_create for..., Greg Kroah-Hartman, (Fri Jan 25, 3:31 am)
[PATCH 081/196] kset: convert efivars to use kset_create for..., Greg Kroah-Hartman, (Fri Jan 25, 3:28 am)
[PATCH 080/196] kset: convert efivars to use kset_create for..., Greg Kroah-Hartman, (Fri Jan 25, 3:28 am)
[PATCH 004/196] Chinese: add translation of SubmittingPatches, Greg Kroah-Hartman, (Fri Jan 25, 3:27 am)
[PATCH 002/196] Chinese: rephrase English introduction in HO..., Greg Kroah-Hartman, (Fri Jan 25, 3:27 am)
[PATCH 001/196] Chinese: Add the known_regression URI to the..., Greg Kroah-Hartman, (Fri Jan 25, 3:27 am)
[PATCH 081/196] kset: convert efivars to use kset_create for..., Greg Kroah-Hartman, (Fri Jan 25, 3:10 am)
[PATCH 080/196] kset: convert efivars to use kset_create for..., Greg Kroah-Hartman, (Fri Jan 25, 3:10 am)
[PATCH 079/196] firmware: export firmware_kset so that peopl..., Greg Kroah-Hartman, (Fri Jan 25, 3:10 am)
[PATCH 078/196] kobject: convert efivars to kobj_attr interf..., Greg Kroah-Hartman, (Fri Jan 25, 3:10 am)
[PATCH 077/196] efivars: make new_var and del_var binary sys..., Greg Kroah-Hartman, (Fri Jan 25, 3:10 am)
[PATCH 076/196] ecryptfs: remove version_str file from sysfs, Greg Kroah-Hartman, (Fri Jan 25, 3:10 am)
[PATCH 075/196] fix struct user_info export's sysfs interact..., Greg Kroah-Hartman, (Fri Jan 25, 3:10 am)
[PATCH 074/196] Driver Core: switch all dynamic ksets to kob..., Greg Kroah-Hartman, (Fri Jan 25, 3:10 am)
[PATCH 073/196] Driver Core: add kobj_attribute handling, Greg Kroah-Hartman, (Fri Jan 25, 3:10 am)
[PATCH 072/196] kset: convert struct bus_device-&gt;drivers ..., Greg Kroah-Hartman, (Fri Jan 25, 3:10 am)
[PATCH 071/196] kset: convert struct bus_device-&gt;devices ..., Greg Kroah-Hartman, (Fri Jan 25, 3:10 am)
[PATCH 070/196] kset: convert /sys/power to use kset_create, Greg Kroah-Hartman, (Fri Jan 25, 3:10 am)
[PATCH 069/196] kset: convert /sys/module to use kset_create, Greg Kroah-Hartman, (Fri Jan 25, 3:10 am)
[PATCH 068/196] kset: move /sys/slab to /sys/kernel/slab, Greg Kroah-Hartman, (Fri Jan 25, 3:10 am)
[PATCH 067/196] kset: convert slub to use kset_create, Greg Kroah-Hartman, (Fri Jan 25, 3:10 am)
Re: [PATCH 067/196] kset: convert slub to use kset_create, Christoph Lameter, (Fri Jan 25, 2:16 pm)
[PATCH 066/196] kset: convert /sys/devices/system to use kse..., Greg Kroah-Hartman, (Fri Jan 25, 3:10 am)
[PATCH 065/196] kobject: convert s390 hypervisor to use kobj..., Greg Kroah-Hartman, (Fri Jan 25, 3:10 am)
[PATCH 064/196] kobject: convert /sys/hypervisor to use kobj..., Greg Kroah-Hartman, (Fri Jan 25, 3:10 am)
[PATCH 063/196] kset: convert /sys/devices to use kset_create, Greg Kroah-Hartman, (Fri Jan 25, 3:10 am)
[PATCH 062/196] kset: convert drivers/base/firmware.c to use..., Greg Kroah-Hartman, (Fri Jan 25, 3:10 am)
[PATCH 061/196] kset: convert drivers/base/class.c to use ks..., Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 060/196] kset: convert drivers/base/bus.c to use kset..., Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 059/196] kset: convert kernel_subsys to use kset_create, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 058/196] kset: remove decl_subsys_name, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 057/196] kset: convert pci hotplug to use kset_create..., Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 056/196] kset: convert dlm to use kset_create, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 055/196] kset: convert gfs2 dlm to use kset_create, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 054/196] kset: convert gfs2 to use kset_create, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 053/196] kobject: convert main fs kobject to use kobj..., Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 052/196] kset: convert ecryptfs to use kset_create, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 051/196] kobject: convert configfs to use kobject_cre..., Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 050/196] kobject: convert debugfs to use kobject_create, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 049/196] kobject: convert securityfs to use kobject_c..., Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 048/196] kobject: convert fuse to use kobject_create, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 047/196] kobject: get rid of kobject_kset_add_dir, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 046/196] kobject: get rid of kobject_add_dir, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 045/196] kobject: add kobject_create_and_add function, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 044/196] kset: add kset_create_and_add function, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 043/196] kobject: remove kobj_set_kset_s as no one is..., Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 042/196] kobject: remove struct kobj_type from struct..., Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 041/196] kobject: add kobject_init_and_add function, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 040/196] kobject: add kobject_add_ng function, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 039/196] kobject: add kobject_init_ng function, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 038/196] kobject: make kobject_cleanup be static, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 037/196] kobject: fix up kobject_set_name to use kvas..., Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 036/196] kobject: convert icom to use kref, not kobject, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 035/196] kobject: convert hvcs to use kref, not kobject, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 034/196] kobject: convert hvc_console to use kref, no..., Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 033/196] kobject: convert ibmasm to use kref, not kob..., Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 032/196] sysfs: remove SPIN_LOCK_UNLOCKED, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 031/196] sysfs: create optimal relative symlink targets, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 030/196] driver core: Make the dev_*() family of macr..., Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 029/196] ecryptfs: clean up attribute mess, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 028/196] cosa: Convert from class_device to device fo..., Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 027/196] tifm: Convert from class_device to device fo..., Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 026/196] pktcdvd: Convert from class_device to device..., Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 025/196] paride: Convert from class_device to device ..., Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 024/196] mtd: Convert from class_device to device for..., Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 023/196] MCP_UCB1200: Convert from class_device to de..., Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 022/196] adb: Convert from class_device to device, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 021/196] ISDN: Convert from class_device to device fo..., Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 020/196] IDE: Convert from class_device to device for..., Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 019/196] DMA: Convert from class_device to device for..., Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 018/196] coda: convert struct class_device to struct ..., Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 017/196] aoechr: Convert from class_device to device, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 016/196] kref: add kref_set(), Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 015/196] PM: Acquire device locks on suspend, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 014/196] kobject: remove incorrect comment in kobject..., Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 013/196] Documentation: Replace obsolete "driverfs" w..., Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 012/196] nozomi driver, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
Re: [PATCH 012/196] nozomi driver, Jan Engelhardt, (Fri Jan 25, 4:31 am)
Re: [PATCH 012/196] nozomi driver, Frank Seidel, (Fri Jan 25, 8:44 am)
Re: [PATCH 012/196] nozomi driver, Jan Engelhardt, (Fri Jan 25, 9:21 am)
Re: [PATCH 012/196] nozomi driver, , (Fri Jan 25, 1:02 pm)
Re: [PATCH 012/196 ver2] nozomi driver, Frank Seidel, (Fri Jan 25, 8:44 am)
Re: [PATCH 012/196 ver2] nozomi driver, Greg KH, (Fri Jan 25, 2:55 pm)
Re: [PATCH 012/196 ver2] nozomi driver, Frank Seidel, (Fri Jan 25, 4:13 pm)
Re: [PATCH 012/196 ver2] nozomi driver, Frank Seidel, (Fri Jan 25, 3:33 pm)
Re: [PATCH 012/196 ver2] nozomi driver, Greg KH, (Fri Jan 25, 3:43 pm)
Re: [PATCH 012/196 ver2] nozomi driver, Frank Seidel, (Fri Jan 25, 4:14 pm)
Re: [PATCH 012/196] nozomi driver, Stefan Richter, (Fri Jan 25, 7:56 am)
[PATCH 011/196] sysfs: Fix a copy-n-paste typo in comment, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 010/196] Chinese: add translation of Codingstyle, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 009/196] Chinese: add translation of sparse.txt, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 008/196] Chinese: add translation of volatile-conside..., Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 007/196] Chinese: add translation of stable_kernel_ru..., Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 006/196] Chinese: add translation of oops-tracing.txt, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 005/196] Chinese: add translation of SubmittingDrivers, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 004/196] Chinese: add translation of SubmittingPatches, Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 002/196] Chinese: rephrase English introduction in HO..., Greg Kroah-Hartman, (Fri Jan 25, 3:09 am)
[PATCH 001/196] Chinese: Add the known_regression URI to the..., Greg Kroah-Hartman, (Fri Jan 25, 3:08 am)