rxrpc: Fix delayed ACKs to not set the reference serial number
[ Upstream commit e7870cf13d20f56bfc19f9c3e89707c69cf104ef ] Fix the construction of delayed ACKs to not set the reference serial number as they can't be used as an RTT reference. Fixes: 17926a79320a ("[AF_RXRPC]: Provide secure RxRPC sockets for use by userspace and kernel both") 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 Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
2c9dc472e6
commit
200cb50b9e
@ -692,7 +692,6 @@ struct rxrpc_call {
|
||||
/* Receive-phase ACK management (ACKs we send). */
|
||||
u8 ackr_reason; /* reason to ACK */
|
||||
u16 ackr_sack_base; /* Starting slot in SACK table ring */
|
||||
rxrpc_serial_t ackr_serial; /* serial of packet being ACK'd */
|
||||
rxrpc_seq_t ackr_window; /* Base of SACK window */
|
||||
rxrpc_seq_t ackr_wtop; /* Base of SACK window */
|
||||
unsigned int ackr_nr_unacked; /* Number of unacked packets */
|
||||
|
@ -43,8 +43,6 @@ void rxrpc_propose_delay_ACK(struct rxrpc_call *call, rxrpc_serial_t serial,
|
||||
unsigned long expiry = rxrpc_soft_ack_delay;
|
||||
unsigned long now = jiffies, ack_at;
|
||||
|
||||
call->ackr_serial = serial;
|
||||
|
||||
if (rxrpc_soft_ack_delay < expiry)
|
||||
expiry = rxrpc_soft_ack_delay;
|
||||
if (call->peer->srtt_us != 0)
|
||||
@ -373,7 +371,6 @@ static void rxrpc_send_initial_ping(struct rxrpc_call *call)
|
||||
bool rxrpc_input_call_event(struct rxrpc_call *call, struct sk_buff *skb)
|
||||
{
|
||||
unsigned long now, next, t;
|
||||
rxrpc_serial_t ackr_serial;
|
||||
bool resend = false, expired = false;
|
||||
s32 abort_code;
|
||||
|
||||
@ -423,8 +420,7 @@ bool rxrpc_input_call_event(struct rxrpc_call *call, struct sk_buff *skb)
|
||||
if (time_after_eq(now, t)) {
|
||||
trace_rxrpc_timer(call, rxrpc_timer_exp_ack, now);
|
||||
cmpxchg(&call->delay_ack_at, t, now + MAX_JIFFY_OFFSET);
|
||||
ackr_serial = xchg(&call->ackr_serial, 0);
|
||||
rxrpc_send_ACK(call, RXRPC_ACK_DELAY, ackr_serial,
|
||||
rxrpc_send_ACK(call, RXRPC_ACK_DELAY, 0,
|
||||
rxrpc_propose_ack_ping_for_lost_ack);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user