diff options
author | David Howells <dhowells@redhat.com> | 2018-03-30 21:04:43 +0100 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2018-03-30 21:04:43 +0100 |
commit | 03877bf6a30cca7d4bc3ffabd3c3e9464a7a1a19 (patch) | |
tree | 5592f86c9ada53d5c46d2653f91b50714c939dee /net/core/net_namespace.c | |
parent | f82eb88b0fa6943f58760fd7c3d1b12c1f9cf492 (diff) |
rxrpc: Fix Tx ring annotation after initial Tx failure
rxrpc calls have a ring of packets that are awaiting ACK or retransmission
and a parallel ring of annotations that tracks the state of those packets.
If the initial transmission of a packet on the underlying UDP socket fails
then the packet annotation is marked for resend - but the setting of this
mark accidentally erases the last-packet mark also stored in the same
annotation slot. If this happens, a call won't switch out of the Tx phase
when all the packets have been transmitted.
Fix this by retaining the last-packet mark and only altering the packet
state.
Fixes: 248f219cb8bc ("rxrpc: Rewrite the data and ack handling code")
Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'net/core/net_namespace.c')
0 files changed, 0 insertions, 0 deletions