Commit 6869ddb8 authored by David Howells's avatar David Howells
Browse files

rxrpc: Remove the rxtx ring



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

Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
parent d57a3a15
Loading
Loading
Loading
Loading
+0 −15
Original line number Original line Diff line number Diff line
@@ -617,21 +617,6 @@ struct rxrpc_call {
	unsigned short		rx_pkt_offset;	/* Current recvmsg packet offset */
	unsigned short		rx_pkt_offset;	/* Current recvmsg packet offset */
	unsigned short		rx_pkt_len;	/* Current recvmsg packet len */
	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. */
	/* Transmitted data tracking. */
	spinlock_t		tx_lock;	/* Transmit queue lock */
	spinlock_t		tx_lock;	/* Transmit queue lock */
	struct list_head	tx_buffer;	/* Buffer of transmissible packets */
	struct list_head	tx_buffer;	/* Buffer of transmissible packets */
+0 −24
Original line number Original line Diff line number Diff line
@@ -129,16 +129,6 @@ struct rxrpc_call *rxrpc_alloc_call(struct rxrpc_sock *rx, gfp_t gfp,
	if (!call)
	if (!call)
		return NULL;
		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);
	mutex_init(&call->user_mutex);


	/* Prevent lockdep reporting a deadlock false positive between the afs
	/* 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;
	call->rtt_avail = RXRPC_CALL_RTT_AVAIL_MASK;
	atomic_inc(&rxnet->nr_calls);
	atomic_inc(&rxnet->nr_calls);
	return call;
	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)
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->recvmsg_queue);
	skb_queue_purge(&call->rx_oos_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_connection(call->conn);
	rxrpc_put_peer(call->peer);
	rxrpc_put_peer(call->peer);
	kfree(call->rxtx_buffer);
	kfree(call->rxtx_annotations);
	kmem_cache_free(rxrpc_call_jar, call);
	kmem_cache_free(rxrpc_call_jar, call);
	if (atomic_dec_and_test(&rxnet->nr_calls))
	if (atomic_dec_and_test(&rxnet->nr_calls))
		wake_up_var(&rxnet->nr_calls);
		wake_up_var(&rxnet->nr_calls);