r8169: improve rtl_schedule_task
authorHeiner Kallweit <hkallweit1@gmail.com>
Sun, 22 Mar 2020 18:03:06 +0000 (19:03 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 24 Mar 2020 04:38:21 +0000 (21:38 -0700)
The current implementation makes the implicit assumption that if a bit
is set, then the work is scheduled already. Remove the need for this
implicit assumption and call schedule_work() always. It will check
internally whether the work is scheduled already.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/realtek/r8169_main.c

index 242b14cc713144718d8527d5cbab7ceab46f1b01..e9ced0360f5897ee0bc773184576cc2c34f5a081 100644 (file)
@@ -2228,8 +2228,8 @@ u16 rtl8168h_2_get_adc_bias_ioffset(struct rtl8169_private *tp)
 
 static void rtl_schedule_task(struct rtl8169_private *tp, enum rtl_flag flag)
 {
-       if (!test_and_set_bit(flag, tp->wk.flags))
-               schedule_work(&tp->wk.work);
+       set_bit(flag, tp->wk.flags);
+       schedule_work(&tp->wk.work);
 }
 
 static void rtl8169_init_phy(struct rtl8169_private *tp)