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
        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;
                resend = true;
        }
 
-       if (skb)
-               rxrpc_input_call_packet(call, skb);
-
        rxrpc_transmit_some_data(call);
 
        if (skb) {