diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-06-02 13:14:25 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-06-02 13:14:25 -0400 |
| commit | f58c356ea74feef8c2bb774dd19ded91567a5cf2 (patch) | |
| tree | 11afa9f83afd382898998710f87bca4972bafed8 | |
| parent | 9221dced3069cc9ae2986ba1191b02dae560df28 (diff) | |
| parent | 8c0f693c6effbc3f42f77a9e81209af9af20910c (diff) | |
Merge tag 'led-fixes-for-5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds
Pull LED fix from Jacek Anaszewski:
"Fix for a recent change in LED core, that didn't take into account the
possibility of calling led_blink_setup() from atomic context"
* tag 'led-fixes-for-5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds:
leds: avoid flush_work in atomic context
| -rw-r--r-- | drivers/leds/led-core.c | 5 | ||||
| -rw-r--r-- | drivers/leds/trigger/ledtrig-timer.c | 5 |
2 files changed, 5 insertions, 5 deletions
diff --git a/drivers/leds/led-core.c b/drivers/leds/led-core.c index e9ae7f87ab90..e3da7c03da1b 100644 --- a/drivers/leds/led-core.c +++ b/drivers/leds/led-core.c | |||
| @@ -164,11 +164,6 @@ static void led_blink_setup(struct led_classdev *led_cdev, | |||
| 164 | unsigned long *delay_on, | 164 | unsigned long *delay_on, |
| 165 | unsigned long *delay_off) | 165 | unsigned long *delay_off) |
| 166 | { | 166 | { |
| 167 | /* | ||
| 168 | * If "set brightness to 0" is pending in workqueue, we don't | ||
| 169 | * want that to be reordered after blink_set() | ||
| 170 | */ | ||
| 171 | flush_work(&led_cdev->set_brightness_work); | ||
| 172 | if (!test_bit(LED_BLINK_ONESHOT, &led_cdev->work_flags) && | 167 | if (!test_bit(LED_BLINK_ONESHOT, &led_cdev->work_flags) && |
| 173 | led_cdev->blink_set && | 168 | led_cdev->blink_set && |
| 174 | !led_cdev->blink_set(led_cdev, delay_on, delay_off)) | 169 | !led_cdev->blink_set(led_cdev, delay_on, delay_off)) |
diff --git a/drivers/leds/trigger/ledtrig-timer.c b/drivers/leds/trigger/ledtrig-timer.c index ca898c1383be..427fc3c303d5 100644 --- a/drivers/leds/trigger/ledtrig-timer.c +++ b/drivers/leds/trigger/ledtrig-timer.c | |||
| @@ -113,6 +113,11 @@ static int timer_trig_activate(struct led_classdev *led_cdev) | |||
| 113 | led_cdev->flags &= ~LED_INIT_DEFAULT_TRIGGER; | 113 | led_cdev->flags &= ~LED_INIT_DEFAULT_TRIGGER; |
| 114 | } | 114 | } |
| 115 | 115 | ||
| 116 | /* | ||
| 117 | * If "set brightness to 0" is pending in workqueue, we don't | ||
| 118 | * want that to be reordered after blink_set() | ||
| 119 | */ | ||
| 120 | flush_work(&led_cdev->set_brightness_work); | ||
| 116 | led_blink_set(led_cdev, &led_cdev->blink_delay_on, | 121 | led_blink_set(led_cdev, &led_cdev->blink_delay_on, |
| 117 | &led_cdev->blink_delay_off); | 122 | &led_cdev->blink_delay_off); |
| 118 | 123 | ||
