Skip to content

Commit 68528d9

Browse files
committed
rxrpc: Keep the ACK serial in a var in rxrpc_input_ack()
Keep the ACK serial number in a variable in rxrpc_input_ack() as it's used frequently. Signed-off-by: David Howells <[email protected]>
1 parent cf96d97 commit 68528d9

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

net/rxrpc/input.c

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -843,7 +843,7 @@ static void rxrpc_input_ack(struct rxrpc_call *call, struct sk_buff *skb)
843843
struct rxrpc_ackinfo info;
844844
u8 acks[RXRPC_MAXACKS];
845845
} buf;
846-
rxrpc_serial_t acked_serial;
846+
rxrpc_serial_t ack_serial, acked_serial;
847847
rxrpc_seq_t first_soft_ack, hard_ack, prev_pkt;
848848
int nr_acks, offset, ioffset;
849849

@@ -856,6 +856,7 @@ static void rxrpc_input_ack(struct rxrpc_call *call, struct sk_buff *skb)
856856
}
857857
offset += sizeof(buf.ack);
858858

859+
ack_serial = sp->hdr.serial;
859860
acked_serial = ntohl(buf.ack.serial);
860861
first_soft_ack = ntohl(buf.ack.firstPacket);
861862
prev_pkt = ntohl(buf.ack.previousPacket);
@@ -864,31 +865,31 @@ static void rxrpc_input_ack(struct rxrpc_call *call, struct sk_buff *skb)
864865
summary.ack_reason = (buf.ack.reason < RXRPC_ACK__INVALID ?
865866
buf.ack.reason : RXRPC_ACK__INVALID);
866867

867-
trace_rxrpc_rx_ack(call, sp->hdr.serial, acked_serial,
868+
trace_rxrpc_rx_ack(call, ack_serial, acked_serial,
868869
first_soft_ack, prev_pkt,
869870
summary.ack_reason, nr_acks);
870871

871872
if (buf.ack.reason == RXRPC_ACK_PING_RESPONSE)
872873
rxrpc_input_ping_response(call, skb->tstamp, acked_serial,
873-
sp->hdr.serial);
874+
ack_serial);
874875
if (buf.ack.reason == RXRPC_ACK_REQUESTED)
875876
rxrpc_input_requested_ack(call, skb->tstamp, acked_serial,
876-
sp->hdr.serial);
877+
ack_serial);
877878

878879
if (buf.ack.reason == RXRPC_ACK_PING) {
879-
_proto("Rx ACK %%%u PING Request", sp->hdr.serial);
880+
_proto("Rx ACK %%%u PING Request", ack_serial);
880881
rxrpc_propose_ACK(call, RXRPC_ACK_PING_RESPONSE,
881-
sp->hdr.serial, true, true,
882+
ack_serial, true, true,
882883
rxrpc_propose_ack_respond_to_ping);
883884
} else if (sp->hdr.flags & RXRPC_REQUEST_ACK) {
884885
rxrpc_propose_ACK(call, RXRPC_ACK_REQUESTED,
885-
sp->hdr.serial, true, true,
886+
ack_serial, true, true,
886887
rxrpc_propose_ack_respond_to_ack);
887888
}
888889

889890
/* Discard any out-of-order or duplicate ACKs (outside lock). */
890891
if (!rxrpc_is_ack_valid(call, first_soft_ack, prev_pkt)) {
891-
trace_rxrpc_rx_discard_ack(call->debug_id, sp->hdr.serial,
892+
trace_rxrpc_rx_discard_ack(call->debug_id, ack_serial,
892893
first_soft_ack, call->ackr_first_seq,
893894
prev_pkt, call->ackr_prev_seq);
894895
return;
@@ -904,7 +905,7 @@ static void rxrpc_input_ack(struct rxrpc_call *call, struct sk_buff *skb)
904905

905906
/* Discard any out-of-order or duplicate ACKs (inside lock). */
906907
if (!rxrpc_is_ack_valid(call, first_soft_ack, prev_pkt)) {
907-
trace_rxrpc_rx_discard_ack(call->debug_id, sp->hdr.serial,
908+
trace_rxrpc_rx_discard_ack(call->debug_id, ack_serial,
908909
first_soft_ack, call->ackr_first_seq,
909910
prev_pkt, call->ackr_prev_seq);
910911
goto out;
@@ -964,7 +965,7 @@ static void rxrpc_input_ack(struct rxrpc_call *call, struct sk_buff *skb)
964965
RXRPC_TX_ANNO_LAST &&
965966
summary.nr_acks == call->tx_top - hard_ack &&
966967
rxrpc_is_client_call(call))
967-
rxrpc_propose_ACK(call, RXRPC_ACK_PING, sp->hdr.serial,
968+
rxrpc_propose_ACK(call, RXRPC_ACK_PING, ack_serial,
968969
false, true,
969970
rxrpc_propose_ack_ping_for_lost_reply);
970971

0 commit comments

Comments
 (0)