summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2024-02-29 17:46:21 +0100
committerDavid Howells <dhowells@redhat.com>2024-03-06 00:35:24 +0100
commit3e0b83ee535d44befddb3f0a6c75a531cf47f869 (patch)
tree28a07f33a880d0aa7fd5b5514791c02469f8c82b
parentrxrpc: Do zerocopy using MSG_SPLICE_PAGES and page frags (diff)
downloadlinux-3e0b83ee535d44befddb3f0a6c75a531cf47f869.tar.xz
linux-3e0b83ee535d44befddb3f0a6c75a531cf47f869.zip
rxrpc: Parse received packets before dealing with timeouts
Parse the received packets before going and processing timeouts as the timeouts may be reset by the reception of a packet. Signed-off-by: David Howells <dhowells@redhat.com> cc: Marc Dionne <marc.dionne@auristor.com> cc: "David S. Miller" <davem@davemloft.net> cc: Eric Dumazet <edumazet@google.com> cc: Jakub Kicinski <kuba@kernel.org> cc: Paolo Abeni <pabeni@redhat.com> cc: linux-afs@lists.infradead.org cc: netdev@vger.kernel.org
-rw-r--r--net/rxrpc/call_event.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/net/rxrpc/call_event.c b/net/rxrpc/call_event.c
index e19ea54dce54..58826710322d 100644
--- a/net/rxrpc/call_event.c
+++ b/net/rxrpc/call_event.c
@@ -358,6 +358,9 @@ bool rxrpc_input_call_event(struct rxrpc_call *call, struct sk_buff *skb)
if (skb && skb->mark == RXRPC_SKB_MARK_ERROR)
goto out;
+ if (skb)
+ rxrpc_input_call_packet(call, skb);
+
/* If we see our async-event poke, check for timeout trippage. */
now = jiffies;
t = call->expect_rx_by;
@@ -417,9 +420,6 @@ bool rxrpc_input_call_event(struct rxrpc_call *call, struct sk_buff *skb)
resend = true;
}
- if (skb)
- rxrpc_input_call_packet(call, skb);
-
rxrpc_transmit_some_data(call);
if (skb) {