linux/drivers/leds
Nathan Lynch 0b8728d6f1 ledtrig-cpu: kill useless mutex to fix sleep in atomic context
Seeing the following every time the CPU enters or leaves idle on a
Beagleboard:

BUG: sleeping function called from invalid context at kernel/mutex.c:269
in_atomic(): 1, irqs_disabled(): 0, pid: 0, name: swapper/0
no locks held by swapper/0/0.
[<c001659c>] (unwind_backtrace+0x0/0xf8) from [<c05aaa7c>] (mutex_lock_nested+0x24/0x380)
[<c05aaa7c>] (mutex_lock_nested+0x24/0x380) from [<c043bd1c>] (ledtrig_cpu+0x38/0x88)
[<c043bd1c>] (ledtrig_cpu+0x38/0x88) from [<c000f4b0>] (cpu_idle+0xf4/0x120)
[<c000f4b0>] (cpu_idle+0xf4/0x120) from [<c07e47c8>] (start_kernel+0x2bc/0x30c)

Miles Lane has reported seeing similar splats during system suspend.

The mutex in struct led_trigger_cpu appears to have no function: it
resides in a per-cpu data structure which never changes after the
trigger is registered.  So just remove it.

Reported-by: Miles Lane <miles.lane@gmail.com>
Signed-off-by: Nathan Lynch <ntl@pobox.com>
Signed-off-by: Bryan Wu <roc@roc-samos.(none)>
2012-11-11 12:09:43 -08:00
..
Kconfig Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds 2012-10-10 20:14:07 +09:00
Makefile Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds 2012-10-10 20:14:07 +09:00
dell-led.c
led-class.c
led-core.c
led-triggers.c leds: triggers: send uevent when changing triggers 2012-09-11 18:32:41 +08:00
leds-88pm860x.c mfd: 88pm860x: Device tree support 2012-10-02 11:43:13 +02:00
leds-adp5520.c
leds-asic3.c
leds-atmel-pwm.c
leds-bd2802.c
leds-blinkm.c
leds-clevo-mail.c
leds-cobalt-qube.c
leds-cobalt-raq.c
leds-da903x.c
leds-da9052.c
leds-dac124s085.c
leds-fsg.c
leds-gpio-register.c
leds-gpio.c leds: leds-gpio: adopt pinctrl support 2012-09-11 18:32:43 +08:00
leds-hp6xx.c
leds-lm355x.c leds: Add new LED driver for lm355x chips 2012-09-11 18:32:43 +08:00
leds-lm3530.c leds-lm3530: Fix smatch warnings 2012-09-12 15:05:00 +08:00
leds-lm3533.c
leds-lm3642.c leds: lm3642: Use regmap_update_bits() in lm3642_chip_init() 2012-09-24 12:24:22 +08:00
leds-locomo.c
leds-lp3944.c
leds-lp5521.c
leds-lp5523.c leds-lp5523: Fix riskiness of the page fault 2012-09-13 11:54:21 +08:00
leds-lp8788.c Merge branch 'for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2012-10-02 09:54:49 -07:00
leds-lt3593.c
leds-max8997.c
leds-mc13783.c
leds-net48xx.c
leds-netxbig.c ARM: orion: move platform_data definitions 2012-09-19 17:42:17 +02:00
leds-ns2.c ARM: orion: move platform_data definitions 2012-09-19 17:42:17 +02:00
leds-ot200.c
leds-pca955x.c
leds-pca9532.c
leds-pca9633.c leds: add output driver configuration for pca9633 led driver 2012-09-24 19:12:29 +08:00
leds-pwm.c
leds-rb532.c
leds-regulator.c
leds-renesas-tpu.c
leds-s3c24xx.c ARM: samsung: move platform_data definitions 2012-09-19 17:42:18 +02:00
leds-ss4200.c
leds-sunfire.c
leds-tca6507.c
leds-wm831x-status.c
leds-wm8350.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds 2012-10-10 20:14:07 +09:00
leds-wrap.c
leds.h
ledtrig-backlight.c
ledtrig-cpu.c ledtrig-cpu: kill useless mutex to fix sleep in atomic context 2012-11-11 12:09:43 -08:00
ledtrig-default-on.c
ledtrig-gpio.c
ledtrig-heartbeat.c
ledtrig-ide-disk.c
ledtrig-oneshot.c
ledtrig-timer.c
ledtrig-transient.c