brcmfmac: reinit watchdog completion after handling watchdog
The watchdog thread waits on completion that is set from a timer. As the completion is count based this could mean that on a busy system the watchdog is handled multiple times with a very short interval. This is not the intended behaviour. After handling the watchdog it should wait for the next timer expiry. This is accomplished by reinitializing the completion. Reviewed-by: Hante Meuleman <meuleman@broadcom.com> Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
d235367960
commit
58e9df462f
|
@ -3994,6 +3994,7 @@ brcmf_sdio_watchdog_thread(void *data)
|
||||||
brcmf_sdio_bus_watchdog(bus);
|
brcmf_sdio_bus_watchdog(bus);
|
||||||
/* Count the tick for reference */
|
/* Count the tick for reference */
|
||||||
bus->sdcnt.tickcnt++;
|
bus->sdcnt.tickcnt++;
|
||||||
|
reinit_completion(&bus->watchdog_wait);
|
||||||
} else
|
} else
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue