From: Tejaswi Tanikella <tejas...@codeaurora.org> Date: Fri, 1 Jun 2018 19:35:41 +0530
> On receiving a IGMPv2/v3 query, based on max_delay set in the header a > timer is started to send out a response after a random time within > max_delay. If the system then moves into suspend state, Report is > delayed until system wakes up. > > In one reported scenario, on arm64 devices, max_delay was set to 10s, > Reports were consistantly delayed if the timer is scheduled after 5 plus > seconds. > > Hold wakelock while starting the timer to prevent moving into suspend > state. > > Signed-off-by: Tejaswi Tanikella <tejas...@codeaurora.org> As Florian stated, this won't be the only networking facility to hit a problem like this. So, if we go down this route, we probably want to generically solve this. But I have a deeper concern. Do we really want every timer based querying mechanism to prevent a system from being able to suspend? We get to the point where external entities can generate traffic which can prevent a remote system from entering suspend state.