On Mon, Mar 29, 2021 at 12:47:15PM -0600, David Mosberger-Tang wrote: > On Fri, 2021-03-19 at 16:09 +0000, Ajay.Kathat@xxxxxxxxxxxxx wrote: > > On 19/03/21 8:17 pm, Dan Carpenter wrote: > > > If the loop fails, the "while(trials--) {" loop will exit with "trials" > > > set to -1. The test for that expects it to end with "trials" set to 0 > > > so the warning message will not be printed. > > > > > > Fix this by changing from a post-op to a pre-op. This does mean that > > > we only make 99 attempts instead of 100 but that's okay. > > > > > > Fixes: f135a1571a05 ("wilc1000: Support chip sleep over SPI") > > > Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > > > > Thanks Dan. > > Good catch, but wouldn't it be better to fix the time-out check > condition instead? Something a long the lines of: > > --- drivers/net/wireless/microchip/wilc1000/wlan.c~ 2021-03-29 12:44:52.066039259 -0600 > +++ drivers/net/wireless/microchip/wilc1000/wlan.c 2021-03-29 12:40:29.176365116 -0600 > @@ -457,7 +457,7 @@ > u32 wakeup_reg, wakeup_bit; > u32 to_host_from_fw_reg, to_host_from_fw_bit; > u32 from_host_to_fw_reg, from_host_to_fw_bit; > - u32 trials = 100; > + int trials = 100; > int ret; > > if (wilc->io_type == WILC_HIF_SDIO) { > @@ -483,7 +483,7 @@ > if ((reg & to_host_from_fw_bit) == 0) > break; > } > - if (!trials) > + if (trials < 0) > pr_warn("FW not responding\n"); > > /* Clear bit 1 */ > > > This way, the loop could actually get executed the number of times > indicated by the initialization of "trial" before issuing a warning > message. Those numbers are just made up... It doesn't matter either way. regards, dan carpenter