mbox series

[net,0/3] net: ipa: GSI interrupt handling fixes

Message ID 20201222180012.22489-1-elder@linaro.org (mailing list archive)
Headers show
Series net: ipa: GSI interrupt handling fixes | expand

Message

Alex Elder Dec. 22, 2020, 6 p.m. UTC
This series implements fixes for some issues related to handling
interrupts when GSI channel and event ring commands complete.

The first issue is that the completion condition for an event ring
or channel command could occur while the associated interrupt is
disabled.  This would cause the interrupt to fire when it is
subsequently enabled, even if the condition it signals had already
been handled.  The fix is to clear any pending interrupt conditions
before re-enabling the interrupt.

The second and third patches change how the success of an event ring
or channel command is determined.  These commands change the state
of an event ring or channel.  Previously the receipt of a completion
interrupt was required to consider a command successful.  Instead, a
command is successful if it changes the state of the target event
ring or channel in the way expected.  This way the command can
succeed even if the completion interrupt did not arrive while it was
enabled.

					-Alex

Alex Elder (3):
  net: ipa: clear pending interrupts before enabling
  net: ipa: use state to determine channel command success
  net: ipa: use state to determine event ring command success

 drivers/net/ipa/gsi.c | 89 +++++++++++++++++++++++++++----------------
 1 file changed, 56 insertions(+), 33 deletions(-)

Comments

patchwork-bot+netdevbpf@kernel.org Dec. 23, 2020, 8:20 p.m. UTC | #1
Hello:

This series was applied to netdev/net.git (refs/heads/master):

On Tue, 22 Dec 2020 12:00:09 -0600 you wrote:
> This series implements fixes for some issues related to handling
> interrupts when GSI channel and event ring commands complete.
> 
> The first issue is that the completion condition for an event ring
> or channel command could occur while the associated interrupt is
> disabled.  This would cause the interrupt to fire when it is
> subsequently enabled, even if the condition it signals had already
> been handled.  The fix is to clear any pending interrupt conditions
> before re-enabling the interrupt.
> 
> [...]

Here is the summary with links:
  - [net,1/3] net: ipa: clear pending interrupts before enabling
    https://git.kernel.org/netdev/net/c/94ad8f3ac6af
  - [net,2/3] net: ipa: use state to determine channel command success
    https://git.kernel.org/netdev/net/c/6ffddf3b3d18
  - [net,3/3] net: ipa: use state to determine event ring command success
    https://git.kernel.org/netdev/net/c/428b448ee764

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html