staging: r8188eu: cancel blink_work before scan blinking
authorMartin Kaiser <martin@kaiser.cx>
Sun, 11 Sep 2022 14:51:15 +0000 (16:51 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 24 Sep 2022 11:07:48 +0000 (13:07 +0200)
Cancel blink_work before we start scan blinking. Another worker will be
scheduled after the state variables are updated.

Tested-by: Philipp Hortmann <philipp.g.hortmann@gmail.com> # Edimax N150
Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20220911145122.15444-3-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/r8188eu/core/rtw_led.c

index c934a1f..30b17c3 100644 (file)
@@ -266,18 +266,18 @@ void rtw_led_control(struct adapter *padapter, enum LED_CTL_MODE LedAction)
 
                if (IS_LED_WPS_BLINKING(pLed))
                        return;
-               if (pLed->bLedNoLinkBlinkInProgress) {
-                       cancel_delayed_work(&pLed->blink_work);
+
+               cancel_delayed_work(&pLed->blink_work);
+
+               if (pLed->bLedNoLinkBlinkInProgress)
                        pLed->bLedNoLinkBlinkInProgress = false;
-               }
-               if (pLed->bLedLinkBlinkInProgress) {
-                       cancel_delayed_work(&pLed->blink_work);
+
+               if (pLed->bLedLinkBlinkInProgress)
                        pLed->bLedLinkBlinkInProgress = false;
-               }
-               if (pLed->bLedBlinkInProgress) {
-                       cancel_delayed_work(&pLed->blink_work);
+
+               if (pLed->bLedBlinkInProgress)
                        pLed->bLedBlinkInProgress = false;
-               }
+
                pLed->bLedScanBlinkInProgress = true;
                pLed->CurrLedState = LED_BLINK_SCAN;
                pLed->BlinkTimes = 24;