On 4/28/19 12:32 AM, Pavel Machek wrote:
Hi! This fixes one problem: Pavel Signed-off-by: Pavel Machek <pavel@xxxxxx> diff --git a/drivers/leds/led-core.c b/drivers/leds/led-core.c index e3da7c0..d795d8f 100644 --- a/drivers/leds/led-core.c +++ b/drivers/leds/led-core.c @@ -164,8 +164,14 @@ static void led_blink_setup(struct led_classdev *led_cdev, unsigned long *delay_on, unsigned long *delay_off) { + while (work_pending(&led_cdev->set_brightness_work)) { + printk("Waiting for brightness set to finish\n"); + schedule(); + }
Or even better: flush_work(&led_cdev->set_brightness_work);
if (!test_bit(LED_BLINK_ONESHOT, &led_cdev->work_flags) && led_cdev->blink_set && + /* This can sleep */ !led_cdev->blink_set(led_cdev, delay_on, delay_off)) return;
-- Best regards, Jacek Anaszewski