Re: [PATCH 22/54] kset: convert /sys/devices/system to use kset_create

Cornelia Huck
2007-11-05T18:11:34Z

On Fri, 2 Nov 2007 16:59:00 -0700,
Greg Kroah-Hartman <gregkh@suse.de> wrote:

> Dynamically create the kset instead of declaring it statically.
>
> Cc: Kay Sievers <kay.sievers@vrfy.org>
> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
> ---
> drivers/base/sys.c | 28 ++++++++++++----------------
> 1 files changed, 12 insertions(+), 16 deletions(-)

Unfortunately, at that point in the patch series reipl breaks for me :(

I used the following silly debug patch:

---
drivers/base/power/shutdown.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)

Index: linux-2.6/drivers/base/power/shutdown.c
===================================================================
--- linux-2.6.orig/drivers/base/power/shutdown.c 2007-11-05 18:51:51.000000000 +0100
+++ linux-2.6/drivers/base/power/shutdown.c 2007-11-05 18:52:50.000000000 +0100
@@ -37,10 +37,11 @@ void device_shutdown(void)
list_for_each_entry_safe_reverse(dev, devn, &devices_kset->list,
kobj.entry) {
if (dev->bus && dev->bus->shutdown) {
- dev_dbg(dev, "shutdown\n");
+ dev_dbg(dev, "shutdown (bus %s)\n", dev->bus->name);
dev->bus->shutdown(dev);
} else if (dev->driver && dev->driver->shutdown) {
- dev_dbg(dev, "shutdown\n");
+ dev_dbg(dev, "shutdown (driver %s)\n",
+ dev->driver->name);
dev->driver->shutdown(dev);
}
}

and get as the kernel's last words:

<loads of sane shutdowns for the ccw and css busses>
<7>io_subchannel 0.0.095c: shutdown (bus css)
<7>io_subchannel 0.0.095b: shutdown (bus css)
<7>io_subchannel 0.0.095a: shutdown (bus css)
<7> : shutdown (bus )
<1>Unable to handle kernel pointer dereference at virtual kernel address 0000000500000000
<4>Oops: 003b [#1]
<4>Modules linked in: dm_multipath sunrpc qeth ccwgroup dm_mod
<4>CPU: 2 Not tainted
<4>Process reboot (pid: 2892, task: 0000000002cae048, ksp: 00000000045c39b8)
<4>Krnl PSW : 0704000180000000 0000000500000006 (0x500000006)
<4> R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:0 CC:0 PM:0 EA:3
<4>Krnl GPRS: 0000000000019e75 0000000500000006 0000000002c42810 0000000002c429b0
<4> 00000000002a36ec 0000000000000000 000003ffffb76d48 0000000000000160
<4> 00000000001423a4 000002000015e390 00000000006e06b8 0000000000634638
<4> 0000000002c42810 000000000041f670 00000000002a36fe 00000000045c3d00
<4>Krnl Code: Bad PSW.
<4>Call Trace:
<4>([<00000000002a36ec>] device_shutdown+0x78/0x144)
<4> [<000000000013f18c>] kernel_restart_prepare+0x44/0x50
<4> [<000000000013f1be>] kernel_restart+0x26/0x6c
<4> [<0000000000142548>] sys_reboot+0x1a4/0x1f4
<4> [<0000000000111038>] sysc_noemu+0x10/0x16
<4> [<00000200001048e0>] 0x200001048e0
<4>
<4>

Huh? We want to shutdown an unknown device on a bus that wishes to stay
anonymous?

Any hints would be appreciated...