[PATCH net-next v2 0/7] net: ipa: don't disable NAPI in suspend

From: Alex Elder
Date: Mon Feb 01 2021 - 12:30:22 EST


This is version 2 of a series that reworks the order in which things
happen during channel stop and suspend (and start and resume), in
order to address a hang that has been observed during suspend.
The introductory message on the first version of the series gave
some history which is omitted here.

The end result of this series is that we only enable NAPI and the
I/O completion interrupt on a channel when we start the channel for
the first time. And we only disable them when stopping the channel
"for good." In other words, NAPI and the completion interrupt
remain enabled while a channel is stopped for suspend.

One comment on version 1 of the series suggested *not* returning
early on success in a function, instead having both success and
error paths return from the same point at the end of the function
block. This has been addressed in this version.

In addition, this version consolidates things a little bit, but the
net result of the series is exactly the same as version 1 (with the
exception of the return fix mentioned above).

First, patch 6 in the first version was a small step to make patch 7
easier to understand. The two have been combined now.

Second, previous version moved (and for suspend/resume, eliminated)
I/O completion interrupt and NAPI disable/enable control in separate
steps (patches). Now both are moved around together in patch 5 and
6, which eliminates the need for the final (NAPI-only) patch.

I won't repeat the patch summaries provided in v1:
https://lore.kernel.org/netdev/20210129202019.2099259-1-elder@xxxxxxxxxx/

Many thanks to Willem de Bruijn for his thoughtful input.

-Alex

Alex Elder (7):
net: ipa: don't thaw channel if error starting
net: ipa: introduce gsi_channel_stop_retry()
net: ipa: introduce __gsi_channel_start()
net: ipa: kill gsi_channel_freeze() and gsi_channel_thaw()
net: ipa: disable interrupt and NAPI after channel stop
net: ipa: don't disable interrupt on suspend
net: ipa: expand last transaction check

drivers/net/ipa/gsi.c | 138 ++++++++++++++++++++++++++----------------
1 file changed, 85 insertions(+), 53 deletions(-)

--
2.27.0