staging: r8188eu: improve timeout handling in efuse_read_phymap_from_txpktbuf
authorMartin Kaiser <martin@kaiser.cx>
Sat, 9 Apr 2022 16:32:11 +0000 (18:32 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 12 Apr 2022 13:49:58 +0000 (15:49 +0200)
Use the standard kernel functions to define and check the timeout in
efuse_read_phymap_from_txpktbuf.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20220409163212.241122-10-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/r8188eu/hal/rtl8188e_hal_init.c

index efdadfb619051aff10de85f132b01e30195e2887..e17375a74f1797ccce24e2c3a2817f6f7df00908 100644 (file)
@@ -186,8 +186,8 @@ static void efuse_read_phymap_from_txpktbuf(
        u16 *size       /* for efuse content: the max byte to read. will update to byte read */
        )
 {
+       unsigned long timeout;
        u16 dbg_addr = 0;
-       u32 start  = 0, passing_time = 0;
        __le32 lo32 = 0, hi32 = 0;
        u16 len = 0, count = 0;
        int i = 0;
@@ -206,9 +206,8 @@ static void efuse_read_phymap_from_txpktbuf(
                rtw_write16(adapter, REG_PKTBUF_DBG_ADDR, dbg_addr + i);
 
                rtw_write8(adapter, REG_TXPKTBUF_DBG, 0);
-               start = jiffies;
-               while (!rtw_read8(adapter, REG_TXPKTBUF_DBG) &&
-                      (passing_time = rtw_get_passing_time_ms(start)) < 1000)
+               timeout = jiffies + msecs_to_jiffies(1000);
+               while (!rtw_read8(adapter, REG_TXPKTBUF_DBG) && time_before(jiffies, timeout))
                        rtw_usleep_os(100);
 
                /* data from EEPROM needs to be in LE */