History

rxrpc: Remove the rxtx ring

The Rx/Tx ring is no longer used, so remove it.

David Howells committed 4 years ago

Commit 6869ddb1 parent d57a3a12 files · +0 −39Browse files

Unified · Split

2 files
  1. net/rxrpc/ar-internal.h +0 −15
  2. net/rxrpc/call_object.c +0 −24
net/rxrpc/ar-internal.h+0−15
@@ -617,21 +617,6 @@ struct rxrpc_call { · 616 unmodified lines
617 unsigned short rx_pkt_offset; /* Current recvmsg packet offset */617 unsigned short rx_pkt_offset; /* Current recvmsg packet offset */
618 unsigned short rx_pkt_len; /* Current recvmsg packet len */618 unsigned short rx_pkt_len; /* Current recvmsg packet len */
619 619
620 /* Rx/Tx circular buffer, depending on phase.
621 *
622 * In the Rx phase, packets are annotated with 0 or the number of the
623 * segment of a jumbo packet each buffer refers to. There can be up to
624 * 47 segments in a maximum-size UDP packet.
625 *
626 * In the Tx phase, packets are annotated with which buffers have been
627 * acked.
628 */
629#define RXRPC_RXTX_BUFF_SIZE 64
630#define RXRPC_RXTX_BUFF_MASK (RXRPC_RXTX_BUFF_SIZE - 1)
631#define RXRPC_INIT_RX_WINDOW_SIZE 63
632 struct sk_buff **rxtx_buffer;
633 u8 *rxtx_annotations;
634
635 /* Transmitted data tracking. */620 /* Transmitted data tracking. */
636 spinlock_t tx_lock; /* Transmit queue lock */621 spinlock_t tx_lock; /* Transmit queue lock */
637 struct list_head tx_buffer; /* Buffer of transmissible packets */622 struct list_head tx_buffer; /* Buffer of transmissible packets */
net/rxrpc/call_object.c+0−24
@@ -129,16 +129,6 @@ struct rxrpc_call *rxrpc_alloc_call(struct rxrpc_sock *rx, gfp_t gfp, · 128 unmodified lines
129 if (!call)129 if (!call)
130 return NULL;130 return NULL;
131 131
132 call->rxtx_buffer = kcalloc(RXRPC_RXTX_BUFF_SIZE,
133 sizeof(struct sk_buff *),
134 gfp);
135 if (!call->rxtx_buffer)
136 goto nomem;
137
138 call->rxtx_annotations = kcalloc(RXRPC_RXTX_BUFF_SIZE, sizeof(u8), gfp);
139 if (!call->rxtx_annotations)
140 goto nomem_2;
141
142 mutex_init(&call->user_mutex);132 mutex_init(&call->user_mutex);
143 133
144 /* Prevent lockdep reporting a deadlock false positive between the afs134 /* Prevent lockdep reporting a deadlock false positive between the afs
@@ -183,12 +173,6 @@ struct rxrpc_call *rxrpc_alloc_call(struct rxrpc_sock *rx, gfp_t gfp, · 38 unmodified lines
183 call->rtt_avail = RXRPC_CALL_RTT_AVAIL_MASK;173 call->rtt_avail = RXRPC_CALL_RTT_AVAIL_MASK;
184 atomic_inc(&rxnet->nr_calls);174 atomic_inc(&rxnet->nr_calls);
185 return call;175 return call;
186
187nomem_2:
188 kfree(call->rxtx_buffer);
189nomem:
190 kmem_cache_free(rxrpc_call_jar, call);
191 return NULL;
192}176}
193 177
194/*178/*
@@ -516,12 +500,6 @@ void rxrpc_get_call(struct rxrpc_call *call, enum rxrpc_call_trace op) · 321 unmodified lines
516 */500 */
517static void rxrpc_cleanup_ring(struct rxrpc_call *call)501static void rxrpc_cleanup_ring(struct rxrpc_call *call)
518{502{
519 int i;
520
521 for (i = 0; i < RXRPC_RXTX_BUFF_SIZE; i++) {
522 rxrpc_free_skb(call->rxtx_buffer[i], rxrpc_skb_cleaned);
523 call->rxtx_buffer[i] = NULL;
524 }
525 skb_queue_purge(&call->recvmsg_queue);503 skb_queue_purge(&call->recvmsg_queue);
526 skb_queue_purge(&call->rx_oos_queue);504 skb_queue_purge(&call->rx_oos_queue);
527}505}
@@ -658,8 +636,6 @@ static void rxrpc_destroy_call(struct work_struct *work) · 130 unmodified lines
658 636
659 rxrpc_put_connection(call->conn);637 rxrpc_put_connection(call->conn);
660 rxrpc_put_peer(call->peer);638 rxrpc_put_peer(call->peer);
661 kfree(call->rxtx_buffer);
662 kfree(call->rxtx_annotations);
663 kmem_cache_free(rxrpc_call_jar, call);639 kmem_cache_free(rxrpc_call_jar, call);
664 if (atomic_dec_and_test(&rxnet->nr_calls))640 if (atomic_dec_and_test(&rxnet->nr_calls))
665 wake_up_var(&rxnet->nr_calls);641 wake_up_var(&rxnet->nr_calls);