Re: LED (leds_hp_disk) causes BUG: scheduling while atomic

From: Daniel Troeder
Date: Thu Jan 08 2009 - 04:49:14 EST


Am Dienstag, den 06.01.2009, 11:14 +0100 schrieb Pavel Machek:
> > I have a HP Compaq nc2400 notebook, and having recently installed 2.6.28
> > (gentoo patchset, self configured), I have observed the following:
> >
> > When {I manually, udev automatically} load the leds_hp_disk module, my
> > disk-led flashes regularly _without_ disk activity. When I look at my
> > dmesg I see the following:
>
> Yes, that's a (mis-feature).
>
> > [ 724.376881] BUG: scheduling while atomic: swapper/0/0x10000100
> > [ 724.376886] Modules linked in: leds_hp_disk i915 drm snd_pcm_oss
>
> And that's a bug. I know what causes it, but i don't have right fix
> yet.
>
> If you are interested, take latest -mm (mmotm from userweb) and apply
> this manually:
>
> --- linux-mm/drivers/hwmon/hp_accel.c 2009-01-06 10:54:40.000000000
> +0100
> +++ linux/drivers/hwmon/hp_accel.c 2008-12-10 09:36:21.000000000
> +0100
> @@ -174,11 +174,35 @@
> }
>
> static struct led_classdev hpled_led = {
> - .name = "hp:red:hddprotection",
> - .default_trigger = "heartbeat",
> + .name = "hp:red:hddprotect",
> + .default_trigger = "none",
> .brightness_set = hpled_set,
> };
>
>
> ...led will stop blinking, and messages will be gone. (But note that
> if you turn on heartbeat or similar trigger, you'll still get the
> "scheduling in interrupt" nastyness...)
> Pavel
Hello :)

Sorry it took me so long to reply - I built a kernel based on
vanilla-2.6.28 and applied patches with quilt to .DATE=2009-01-05-12-50.
That worked well, except that when booted, the xfs driver corrupts each
time my MUAs (evolution) configuration :(

But not your problem... the LED-scheduling-problem went away (no more
blinking, on more kernel-BUG and I get:

[ 31.822317] lis3lv02d: laptop model unknown, using default axes
configuration
[ 31.822367] Registered led device: hp:red:hddprotect
[ 32.059496] input: ST LIS3LV02DL Accelerometer
as /devices/platform/lis3lv02d/input/input8
[ 32.081954] lis3lv02d driver loaded.

$ lsmod | egrep 'lis3lv02d|hp_accel'
hp_accel 6656 0
led_class 3908 2 iwl3945,hp_accel
lis3lv02d 5956 1 hp_accel

/sys/devices/platform/lis3lv02d
/sys/bus/platform/devices/lis3lv02d
/sys/bus/acpi/drivers/lis3lv02d
/sys/module/lis3lv02d
/sys/module/hp_accel

I was shortly confused, because CONFIG_LEDS_HP_DISK went away and got
integrated into CONFIG_SENSORS_LIS3LV02D with
lis3lv02d-merge-with-leds-hp-disk.patch :)

Bye,
Daniel

Attachment: signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil