rxrpc: Remove the rxtx ring
authorDavid Howells <dhowells@redhat.com>
Wed, 15 Jun 2022 13:49:26 +0000 (14:49 +0100)
committerDavid Howells <dhowells@redhat.com>
Tue, 8 Nov 2022 16:42:28 +0000 (16:42 +0000)
The Rx/Tx ring is no longer used, so remove it.

Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org

net/rxrpc/ar-internal.h
net/rxrpc/call_object.c

index 168d03b56adae4d2c841537cd0606eb622b79c47..775eb91aabb2d144efd166dbcc5fba0cb0452a5c 100644 (file)
@@ -617,21 +617,6 @@ struct rxrpc_call {
        unsigned short          rx_pkt_offset;  /* Current recvmsg packet offset */
        unsigned short          rx_pkt_len;     /* Current recvmsg packet len */
 
-       /* Rx/Tx circular buffer, depending on phase.
-        *
-        * In the Rx phase, packets are annotated with 0 or the number of the
-        * segment of a jumbo packet each buffer refers to.  There can be up to
-        * 47 segments in a maximum-size UDP packet.
-        *
-        * In the Tx phase, packets are annotated with which buffers have been
-        * acked.
-        */
-#define RXRPC_RXTX_BUFF_SIZE   64
-#define RXRPC_RXTX_BUFF_MASK   (RXRPC_RXTX_BUFF_SIZE - 1)
-#define RXRPC_INIT_RX_WINDOW_SIZE 63
-       struct sk_buff          **rxtx_buffer;
-       u8                      *rxtx_annotations;
-
        /* Transmitted data tracking. */
        spinlock_t              tx_lock;        /* Transmit queue lock */
        struct list_head        tx_buffer;      /* Buffer of transmissible packets */
index 91771031ad3cb6d827a5bcf3b8be3c9ed548d5f4..aa19daaa487befeab0037ccfb741ed5130ef99ad 100644 (file)
@@ -129,16 +129,6 @@ struct rxrpc_call *rxrpc_alloc_call(struct rxrpc_sock *rx, gfp_t gfp,
        if (!call)
                return NULL;
 
-       call->rxtx_buffer = kcalloc(RXRPC_RXTX_BUFF_SIZE,
-                                   sizeof(struct sk_buff *),
-                                   gfp);
-       if (!call->rxtx_buffer)
-               goto nomem;
-
-       call->rxtx_annotations = kcalloc(RXRPC_RXTX_BUFF_SIZE, sizeof(u8), gfp);
-       if (!call->rxtx_annotations)
-               goto nomem_2;
-
        mutex_init(&call->user_mutex);
 
        /* 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,
        call->rtt_avail = RXRPC_CALL_RTT_AVAIL_MASK;
        atomic_inc(&rxnet->nr_calls);
        return call;
-
-nomem_2:
-       kfree(call->rxtx_buffer);
-nomem:
-       kmem_cache_free(rxrpc_call_jar, call);
-       return NULL;
 }
 
 /*
@@ -516,12 +500,6 @@ void rxrpc_get_call(struct rxrpc_call *call, enum rxrpc_call_trace op)
  */
 static void rxrpc_cleanup_ring(struct rxrpc_call *call)
 {
-       int i;
-
-       for (i = 0; i < RXRPC_RXTX_BUFF_SIZE; i++) {
-               rxrpc_free_skb(call->rxtx_buffer[i], rxrpc_skb_cleaned);
-               call->rxtx_buffer[i] = NULL;
-       }
        skb_queue_purge(&call->recvmsg_queue);
        skb_queue_purge(&call->rx_oos_queue);
 }
@@ -658,8 +636,6 @@ static void rxrpc_destroy_call(struct work_struct *work)
 
        rxrpc_put_connection(call->conn);
        rxrpc_put_peer(call->peer);
-       kfree(call->rxtx_buffer);
-       kfree(call->rxtx_annotations);
        kmem_cache_free(rxrpc_call_jar, call);
        if (atomic_dec_and_test(&rxnet->nr_calls))
                wake_up_var(&rxnet->nr_calls);