staging: r8188eu: always cancel blink_work before WPS blinking
authorMartin Kaiser <martin@kaiser.cx>
Mon, 5 Sep 2022 20:01:42 +0000 (22:01 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 9 Sep 2022 07:52:08 +0000 (09:52 +0200)
In rtw_led_control, we can always cancel a running blink worker when we
start WPS blinking.

The worker will be scheduled again and there's no point in having more
than one pending blink worker.

Tested-by: Michael Straube <straube.linux@gmail.com>
Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20220905200146.82259-4-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/r8188eu/core/rtw_led.c

index d899e42b703dad44580c8863c4d8329b1aa47665..72fef3ac8c0e5f07c7b186520f417e0706f3a544 100644 (file)
@@ -312,22 +312,19 @@ void rtw_led_control(struct adapter *padapter, enum LED_CTL_MODE LedAction)
                if (pLed->bLedWPSBlinkInProgress)
                        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;
-               }
-               if (pLed->bLedScanBlinkInProgress) {
-                       cancel_delayed_work(&pLed->blink_work);
+
+               if (pLed->bLedScanBlinkInProgress)
                        pLed->bLedScanBlinkInProgress = false;
-               }
+
                pLed->bLedWPSBlinkInProgress = true;
                pLed->CurrLedState = LED_BLINK_WPS;
                if (pLed->bLedOn)