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

Greg KH
2007-11-05T18:59:17Z

On Mon, Nov 05, 2007 at 07:11:09PM +0100, Cornelia Huck wrote:
> 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:

What does reipl have to do with shutdown?

> ---
> 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...

I'll look into this, I wonder if we are walking off the end of an
unterminated list...

thanks,

greg k-h