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 drivers/leds: Add module.h to files using it implicitly 2011-10-31 19:31:49 -04:00
led-class.c leds: delay led_set_brightness if stopping soft-blink 2012-09-11 18:32:40 +08:00
led-core.c leds: delay led_set_brightness if stopping soft-blink 2012-09-11 18:32:40 +08:00
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: convert ADP5520 LED driver to devm_kzalloc() and cleanup error exit path 2012-07-24 07:52:39 +08:00
leds-asic3.c leds: convert HTC ASIC3 LED driver to devm_kzalloc() and cleanup error exit path 2012-07-24 07:52:37 +08:00
leds-atmel-pwm.c leds: convert Atmel PWM LED driver to devm_kzalloc() 2012-07-24 07:52:37 +08:00
leds-bd2802.c leds: convert BD2802 RGB LED driver to devm_kzalloc() and cleanup error exit path 2012-07-24 07:52:38 +08:00
leds-blinkm.c LEDS: propagate error codes in blinkm_detect() 2012-07-27 08:15:09 +08:00
leds-clevo-mail.c leds-clevo-mail: Fix Clevo M5x0V DMI strings 2012-09-11 18:32:40 +08:00
leds-cobalt-qube.c leds: convert led platform drivers to module_platform_driver 2012-01-10 16:30:48 -08:00
leds-cobalt-raq.c drivers/leds: Add export.h for THIS_MODULE to leds-cobalt-raq.c 2011-10-31 19:31:50 -04:00
leds-da903x.c leds: convert DA9030/DA9034 LED driver to devm_kzalloc() and cleanup error exit path 2012-07-24 07:52:37 +08:00
leds-da9052.c leds: driver for DA9052/53 PMIC v2 2012-05-29 16:22:31 -07:00
leds-dac124s085.c leds: convert DAC124S085 LED driver to devm_kzalloc() 2012-07-24 07:52:40 +08:00
leds-fsg.c leds: convert led platform drivers to module_platform_driver 2012-01-10 16:30:48 -08:00
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: convert led platform drivers to module_platform_driver 2012-01-10 16:30:48 -08:00
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 workqueue: deprecate flush[_delayed]_work_sync() 2012-08-20 14:51:24 -07:00
leds-lm3642.c leds: lm3642: Use regmap_update_bits() in lm3642_chip_init() 2012-09-24 12:24:22 +08:00
leds-locomo.c drivers/leds: Add module.h to files using it implicitly 2011-10-31 19:31:49 -04:00
leds-lp3944.c leds: convert LP3944 LED driver to devm_kzalloc() 2012-07-24 07:52:37 +08:00
leds-lp5521.c leds: convert LP5521 LED driver to devm_kzalloc() and cleanup error exit path 2012-07-24 07:52:37 +08:00
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: convert LT3593 LED driver to devm_kzalloc() 2012-07-24 07:52:38 +08:00
leds-max8997.c leds: max8997: Simplify max8997_led_set_mode implementation 2012-07-24 15:48:47 +08:00
leds-mc13783.c leds: convert Freescale MC13783 LED driver to devm_kzalloc() and cleanup error exit path 2012-07-24 07:52:39 +08:00
leds-net48xx.c drivers/leds: Add module.h to files using it implicitly 2011-10-31 19:31:49 -04:00
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: add led driver for Bachmann's ot200 2012-01-23 08:38:47 -08:00
leds-pca955x.c leds: convert PCA955x LED driver to devm_kzalloc() and cleanup error exit path 2012-07-24 07:52:39 +08:00
leds-pca9532.c leds: convert PCA9532 LED driver to devm_kzalloc() 2012-07-24 07:52:39 +08:00
leds-pca9633.c leds: add output driver configuration for pca9633 led driver 2012-09-24 19:12:29 +08:00
leds-pwm.c leds: Use devm_kzalloc in leds-pwm.c file 2012-07-24 07:52:36 +08:00
leds-rb532.c leds: convert led platform drivers to module_platform_driver 2012-01-10 16:30:48 -08:00
leds-regulator.c leds: Use devm_kzalloc in leds-regulator.c file 2012-07-24 07:52:36 +08:00
leds-renesas-tpu.c leds: renesas: fix error handling 2012-08-13 14:34:02 +08:00
leds-s3c24xx.c ARM: samsung: move platform_data definitions 2012-09-19 17:42:18 +02:00
leds-ss4200.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
leds-sunfire.c leds: convert Sun Fire LED driver to devm_kzalloc() and cleanup error exit path 2012-07-24 07:52:39 +08:00
leds-tca6507.c leds: convert TCA6507 LED driver to devm_kzalloc() 2012-07-24 07:52:39 +08:00
leds-wm831x-status.c leds: convert wm831x status driver to devm_kzalloc() 2012-01-10 16:30:49 -08:00
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 drivers/leds: Add module.h to files using it implicitly 2011-10-31 19:31:49 -04:00
leds.h leds: delay led_set_brightness if stopping soft-blink 2012-09-11 18:32:40 +08:00
ledtrig-backlight.c leds: Rename led_set_brightness() to __led_set_brightness() 2012-07-24 07:52:34 +08:00
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 leds: Rename led_set_brightness() to __led_set_brightness() 2012-07-24 07:52:34 +08:00
ledtrig-gpio.c leds: Rename led_set_brightness() to __led_set_brightness() 2012-07-24 07:52:34 +08:00
ledtrig-heartbeat.c leds: Rename led_set_brightness() to __led_set_brightness() 2012-07-24 07:52:34 +08:00
ledtrig-ide-disk.c ledtrig-ide-disk: use generic one-shot blink api 2012-07-24 07:52:34 +08:00
ledtrig-oneshot.c leds: Rename led_brightness_set() to led_set_brightness() 2012-07-24 07:52:34 +08:00
ledtrig-timer.c leds: Rename led_brightness_set() to led_set_brightness() 2012-07-24 07:52:34 +08:00
ledtrig-transient.c leds: Rename led_set_brightness() to __led_set_brightness() 2012-07-24 07:52:34 +08:00