mirror of https://gitee.com/openkylin/linux.git
8c0f693c6e
It turns out that various triggers use led_blink_setup() from atomic
context, so we can't do a flush_work there. Flush is still needed for
slow LEDs, but we can move it to sysfs code where it is safe.
WARNING: inconsistent lock state
5.2.0-rc1 #1 Tainted: G W
--------------------------------
inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage.
swapper/1/0 [HC0[0]:SC1[1]:HE1:SE0] takes:
000000006e30541b
((work_completion)(&led_cdev->set_brightness_work)){+.?.}, at:
+__flush_work+0x3b/0x38a
{SOFTIRQ-ON-W} state was registered at:
lock_acquire+0x146/0x1a1
__flush_work+0x5b/0x38a
flush_work+0xb/0xd
led_blink_setup+0x1e/0xd3
led_blink_set+0x3f/0x44
tpt_trig_timer+0xdb/0x106
ieee80211_mod_tpt_led_trig+0xed/0x112
Fixes:
|
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
ledtrig-activity.c | ||
ledtrig-audio.c | ||
ledtrig-backlight.c | ||
ledtrig-camera.c | ||
ledtrig-cpu.c | ||
ledtrig-default-on.c | ||
ledtrig-disk.c | ||
ledtrig-gpio.c | ||
ledtrig-heartbeat.c | ||
ledtrig-mtd.c | ||
ledtrig-netdev.c | ||
ledtrig-oneshot.c | ||
ledtrig-panic.c | ||
ledtrig-pattern.c | ||
ledtrig-timer.c | ||
ledtrig-transient.c |