Hi Dan, On 5/19/22 08:43, Dan Carpenter wrote: > On Thu, May 19, 2022 at 01:12:01AM +0300, Pavel Skripkin wrote: >> diff --git a/drivers/staging/r8188eu/core/rtw_efuse.c b/drivers/staging/r8188eu/core/rtw_efuse.c >> index a2691c7f96f6..7105122c2ba0 100644 >> --- a/drivers/staging/r8188eu/core/rtw_efuse.c >> +++ b/drivers/staging/r8188eu/core/rtw_efuse.c >> @@ -47,9 +47,18 @@ ReadEFuseByte( >> >> /* Check bit 32 read-ready */ >> retry = 0; >> - value32 = rtw_read32(Adapter, EFUSE_CTRL); >> - while (!(((value32 >> 24) & 0xff) & 0x80) && (retry < 10000)) { >> - value32 = rtw_read32(Adapter, EFUSE_CTRL); >> + res = rtw_read32(Adapter, EFUSE_CTRL, &value32); >> + if (res) >> + return; >> + >> + while (retry < 10000) { >> + res = rtw_read32(Adapter, EFUSE_CTRL, &value32); >> + if (res) >> + continue; > > Forever loop. Always put the ++ in side the while (). Apparently, > Smatch does not catch this. #Idea #Oppurtunity > I have missed it every single loop... :( That's why I don't like 'while' loops, 'for' suits much better for this kind of things. Thanks you for your review! Will address your comments in next version With regards, Pavel Skripkin