Skip to content
  • Hans de Goede's avatar
    led: core: Fix blink_brightness setting race · eb1610b4
    Hans de Goede authored
    
    
    All 3 of led_timer_func, led_set_brightness and led_set_software_blink
    set blink_brightness. If led_timer_func or led_set_software_blink race
    with led_set_brightness they may end up overwriting the new
    blink_brightness. The new atomic work_flags does not protect against
    this as it just protects the flags and not blink_brightness.
    
    This commit introduces a new new_blink_brightness value which gets
    set by led_set_brightness and read by led_timer_func on LED on, fixing
    this.
    
    Dealing with the new brightness at LED on time, makes the new
    brightness apply sooner, which also fixes a led_set_brightness which
    happens while a oneshot blink which ends in LED on is running not
    getting applied.
    
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Signed-off-by: default avatarJacek Anaszewski <j.anaszewski@samsung.com>
    eb1610b4