[PATCH 155/196] Driver core: fix class glue dir cleanup logic

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

From: Kay Sievers

We should remove the glue directory between the class and the bus
device _after_ we sent out the 'remove' event for the device, otherwise
the parent relationship is no longer valid, and composing the path
with deleted sysfs entries will not work.

Cc: Alan Stern
Signed-off-by: Kay Sievers
Signed-off-by: Greg Kroah-Hartman
---
drivers/base/core.c | 206 +++++++++++++++++++++++----------------------------
1 files changed, 94 insertions(+), 112 deletions(-)

diff --git a/drivers/base/core.c b/drivers/base/core.c
index 22fdf32..13cae18 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -18,7 +18,7 @@
#include
#include
#include
-
+#include
#include

#include "base.h"
@@ -538,22 +538,20 @@ void device_initialize(struct device *dev)
}

#ifdef CONFIG_SYSFS_DEPRECATED
-static struct kobject * get_device_parent(struct device *dev,
- struct device *parent)
+static struct kobject *get_device_parent(struct device *dev,
+ struct device *parent)
{
- /*
- * Set the parent to the class, not the parent device
- * for topmost devices in class hierarchy.
- * This keeps sysfs from having a symlink to make old
- * udevs happy
- */
+ /* class devices without a parent live in /sys/class// */
if (dev->class && (!parent || parent->class != dev->class))
return &dev->class->subsys.kobj;
+ /* all other devices keep their parent */
else if (parent)
return &parent->kobj;

return NULL;
}
+
+static inline void cleanup_device_parent(struct device *dev) {}
#else
static struct kobject *virtual_device_parent(struct device *dev)
{
@@ -566,8 +564,8 @@ static struct kobject *virtual_device_parent(struct device *dev)
return virtual_dir;
}

-static struct kobject * get_device_parent(struct device *dev,
- struct device *parent)
+static struct kobject *get_device_parent(struct device *dev,
+ struct device *parent)
{
int retval;

@@ -618,6 +616,34 @@ static struct kobject * get_device_parent(struct device *dev,
return &parent->kobj;
return NULL;
}
+
+static void cleanup_device_parent(struct device *dev)
+{
+ struct device *d;
+ int other = 0;
+
+ if (!dev->class)
+ return;
+
+ /* see if we live in a parent class directory */
+ if (dev->kobj.parent->kset != &dev->class->class_dirs)
+ return;
+
+ /* if we are the last child of our class, delete the directory */
+ down(&dev->class->sem);
+ list_for_each_entry(d, &dev->class->devices, node) {
+ if (d == dev)
+ continue;
+ if (d->kobj.parent == dev->kobj.parent) {
+ other = 1;
+ break;
+ }
+ }
+ if (!other)
+ kobject_del(dev->kobj.parent);
+ kobject_put(dev->kobj.parent);
+ up(&dev->class->sem);
+}
#endif

static int setup_parent(struct device *dev, struct device *parent)
@@ -637,65 +663,74 @@ static int device_add_class_symlinks(struct device *dev)

if (!dev->class)
return 0;
+
error = sysfs_create_link(&dev->kobj, &dev->class->subsys.kobj,
"subsystem");
if (error)
goto out;
- /*
- * If this is not a "fake" compatible device, then create the
- * symlink from the class to the device.
- */
+
+#ifdef CONFIG_SYSFS_DEPRECATED
+ /* stacked class devices need a symlink in the class directory */
if (dev->kobj.parent != &dev->class->subsys.kobj) {
error = sysfs_create_link(&dev->class->subsys.kobj, &dev->kobj,
dev->bus_id);
if (error)
goto out_subsys;
}
+
if (dev->parent) {
-#ifdef CONFIG_SYSFS_DEPRECATED
- {
- struct device *parent = dev->parent;
- char *class_name;
-
- /*
- * In old sysfs stacked class devices had 'device'
- * link pointing to real device instead of parent
- */
- while (parent->class && !parent->bus && parent->parent)
- parent = parent->parent;
-
- error = sysfs_create_link(&dev->kobj,
- &parent->kobj,
- "device");
- if (error)
- goto out_busid;
+ struct device *parent = dev->parent;
+ char *class_name;

- class_name = make_class_name(dev->class->name,
- &dev->kobj);
- if (class_name)
- error = sysfs_create_link(&dev->parent->kobj,
- &dev->kobj, class_name);
- kfree(class_name);
- if (error)
- goto out_device;
- }
-#else
- error = sysfs_create_link(&dev->kobj, &dev->parent->kobj,
+ /*
+ * stacked class devices have the 'device' link
+ * pointing to the bus device instead of the parent
+ */
+ while (parent->class && !parent->bus && parent->parent)
+ parent = parent->parent;
+
+ error = sysfs_create_link(&dev->kobj,
+ &parent->kobj,
"device");
if (error)
goto out_busid;
-#endif
+
+ class_name = make_class_name(dev->class->name,
+ &dev->kobj);
+ if (class_name)
+ error = sysfs_create_link(&dev->parent->kobj,
+ &dev->kobj, class_name);
+ kfree(class_name);
+ if (error)
+ goto out_device;
}
return 0;

-#ifdef CONFIG_SYSFS_DEPRECATED
out_device:
if (dev->parent)
sysfs_remove_link(&dev->kobj, "device");
-#endif
out_busid:
if (dev->kobj.parent != &dev->class->subsys.kobj)
sysfs_remove_link(&dev->class->subsys.kobj, dev->bus_id);
+#else
+ /* link in the class directory pointing to the device */
+ error = sysfs_create_link(&dev->class->subsys.kobj, &dev->kobj,
+ dev->bus_id);
+ if (error)
+ goto out_subsys;
+
+ if (dev->parent) {
+ error = sysfs_create_link(&dev->kobj, &dev->parent->kobj,
+ "device");
+ if (error)
+ goto out_busid;
+ }
+ return 0;
+
+out_busid:
+ sysfs_remove_link(&dev->class->subsys.kobj, dev->bus_id);
+#endif
+
out_subsys:
sysfs_remove_link(&dev->kobj, "subsystem");
out:
@@ -706,8 +741,9 @@ static void device_remove_class_symlinks(struct device *dev)
{
if (!dev->class)
return;
- if (dev->parent) {
+
#ifdef CONFIG_SYSFS_DEPRECATED
+ if (dev->parent) {
char *class_name;

class_name = make_class_name(dev->class->name, &dev->kobj);
@@ -715,11 +751,18 @@ static void device_remove_class_symlinks(struct device *dev)
sysfs_remove_link(&dev->parent->kobj, class_name);
kfree(class_name);
}
-#endif
sysfs_remove_link(&dev->kobj, "device");
}
+
if (dev->kobj.parent != &dev->class->subsys.kobj)
sysfs_remove_link(&dev->class->subsys.kobj, dev->bus_id);
+#else
+ if (dev->parent)
+ sysfs_remove_link(&dev->kobj, "device");
+
+ sysfs_remove_link(&dev->class->subsys.kobj, dev->bus_id);
+#endif
+
sysfs_remove_link(&dev->kobj, "subsystem");
}

@@ -830,26 +873,6 @@ int device_add(struct device *dev)
SymlinkError:
if (MAJOR(dev->devt))
device_remove_file(dev, &devt_attr);
-
- if (dev->class) {
- sysfs_remove_link(&dev->kobj, "subsystem");
- /* If this is not a "fake" compatible device, remove the
- * symlink from the class to the device. */
- if (dev->kobj.parent != &dev->class->subsys.kobj)
- sysfs_remove_link(&dev->class->subsys.kobj,
- dev->bus_id);
- if (parent) {
-#ifdef CONFIG_SYSFS_DEPRECATED
- char *class_name = make_class_name(dev->class->name,
- &dev->kobj);
- if (class_name)
- sysfs_remove_link(&dev->parent->kobj,
- class_name);
- kfree(class_name);
-#endif
- sysfs_remove_link(&dev->kobj, "device");
- }
- }
ueventattrError:
device_remove_file(dev, &uevent_attr);
attrError:
@@ -932,23 +955,7 @@ void device_del(struct device * dev)
if (MAJOR(dev->devt))
device_remove_file(dev, &devt_attr);
if (dev->class) {
- sysfs_remove_link(&dev->kobj, "subsystem");
- /* If this is not a "fake" compatible device, remove the
- * symlink from the class to the device. */
- if (dev->kobj.parent != &dev->class->subsys.kobj)
- sysfs_remove_link(&dev->class->subsys.kobj,
- dev->bus_id);
- if (parent) {
-#ifdef CONFIG_SYSFS_DEPRECATED
- char *class_name = make_class_name(dev->class->name,
- &dev->kobj);
- if (class_name)
- sysfs_remove_link(&dev->parent->kobj,
- class_name);
- kfree(class_name);
-#endif
- sysfs_remove_link(&dev->kobj, "device");
- }
+ device_remove_class_symlinks(dev);

down(&dev->class->sem);
/* notify any interfaces that the device is now gone */
@@ -958,31 +965,6 @@ void device_del(struct device * dev)
/* remove the device from the class list */
list_del_init(&dev->node);
up(&dev->class->sem);
-
- /* If we live in a parent class-directory, unreference it */
- if (dev->kobj.parent->kset == &dev->class->class_dirs) {
- struct device *d;
- int other = 0;
-
- /*
- * if we are the last child of our class, delete
- * our class-directory at this parent
- */
- down(&dev->class->sem);
- list_for_each_entry(d, &dev->class->devices, node) {
- if (d == dev)
- continue;
- if (d->kobj.parent == dev->kobj.parent) {
- other = 1;
- break;
- }
- }
- if (!other)
- kobject_del(dev->kobj.parent);
-
- kobject_put(dev->kobj.parent);
- up(&dev->class->sem);
- }
}
device_remove_file(dev, &uevent_attr);
device_remove_attrs(dev);
@@ -1004,9 +986,9 @@ void device_del(struct device * dev)
blocking_notifier_call_chain(&dev->bus->p->bus_notifier,
BUS_NOTIFY_DEL_DEVICE, dev);
kobject_uevent(&dev->kobj, KOBJ_REMOVE);
+ cleanup_device_parent(dev);
kobject_del(&dev->kobj);
- if (parent)
- put_device(parent);
+ put_device(parent);
}

/**
--
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)