Commit 4e76bd40 authored by David Howells's avatar David Howells

rxrpc: Remove call->lock

call->lock is no longer necessary, 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 a4ea4c47
...@@ -601,7 +601,6 @@ struct rxrpc_call { ...@@ -601,7 +601,6 @@ struct rxrpc_call {
unsigned long user_call_ID; /* user-defined call ID */ unsigned long user_call_ID; /* user-defined call ID */
unsigned long flags; unsigned long flags;
unsigned long events; unsigned long events;
spinlock_t lock;
spinlock_t notify_lock; /* Kernel notification lock */ spinlock_t notify_lock; /* Kernel notification lock */
rwlock_t state_lock; /* lock for state transition */ rwlock_t state_lock; /* lock for state transition */
u32 abort_code; /* Local/remote abort code */ u32 abort_code; /* Local/remote abort code */
......
...@@ -26,24 +26,19 @@ void rxrpc_propose_ping(struct rxrpc_call *call, u32 serial, ...@@ -26,24 +26,19 @@ void rxrpc_propose_ping(struct rxrpc_call *call, u32 serial,
unsigned long now = jiffies; unsigned long now = jiffies;
unsigned long ping_at = now + rxrpc_idle_ack_delay; unsigned long ping_at = now + rxrpc_idle_ack_delay;
spin_lock_bh(&call->lock);
if (time_before(ping_at, call->ping_at)) { if (time_before(ping_at, call->ping_at)) {
WRITE_ONCE(call->ping_at, ping_at); WRITE_ONCE(call->ping_at, ping_at);
rxrpc_reduce_call_timer(call, ping_at, now, rxrpc_reduce_call_timer(call, ping_at, now,
rxrpc_timer_set_for_ping); rxrpc_timer_set_for_ping);
trace_rxrpc_propose_ack(call, why, RXRPC_ACK_PING, serial); trace_rxrpc_propose_ack(call, why, RXRPC_ACK_PING, serial);
} }
spin_unlock_bh(&call->lock);
} }
/* /*
* Propose a DELAY ACK be sent in the future. * Propose a DELAY ACK be sent in the future.
*/ */
static void __rxrpc_propose_delay_ACK(struct rxrpc_call *call, void rxrpc_propose_delay_ACK(struct rxrpc_call *call, rxrpc_serial_t serial,
rxrpc_serial_t serial, enum rxrpc_propose_ack_trace why)
enum rxrpc_propose_ack_trace why)
{ {
unsigned long expiry = rxrpc_soft_ack_delay; unsigned long expiry = rxrpc_soft_ack_delay;
unsigned long now = jiffies, ack_at; unsigned long now = jiffies, ack_at;
...@@ -68,17 +63,6 @@ static void __rxrpc_propose_delay_ACK(struct rxrpc_call *call, ...@@ -68,17 +63,6 @@ static void __rxrpc_propose_delay_ACK(struct rxrpc_call *call,
trace_rxrpc_propose_ack(call, why, RXRPC_ACK_DELAY, serial); trace_rxrpc_propose_ack(call, why, RXRPC_ACK_DELAY, serial);
} }
/*
* Propose a DELAY ACK be sent, locking the call structure
*/
void rxrpc_propose_delay_ACK(struct rxrpc_call *call, rxrpc_serial_t serial,
enum rxrpc_propose_ack_trace why)
{
spin_lock_bh(&call->lock);
__rxrpc_propose_delay_ACK(call, serial, why);
spin_unlock_bh(&call->lock);
}
/* /*
* Queue an ACK for immediate transmission. * Queue an ACK for immediate transmission.
*/ */
...@@ -204,10 +188,8 @@ static void rxrpc_resend(struct rxrpc_call *call, unsigned long now_j) ...@@ -204,10 +188,8 @@ static void rxrpc_resend(struct rxrpc_call *call, unsigned long now_j)
* retransmitting data. * retransmitting data.
*/ */
if (list_empty(&retrans_queue)) { if (list_empty(&retrans_queue)) {
spin_lock_bh(&call->lock);
rxrpc_reduce_call_timer(call, resend_at, now_j, rxrpc_reduce_call_timer(call, resend_at, now_j,
rxrpc_timer_set_for_resend); rxrpc_timer_set_for_resend);
spin_unlock_bh(&call->lock);
ack_ts = ktime_sub(now, call->acks_latest_ts); ack_ts = ktime_sub(now, call->acks_latest_ts);
if (ktime_to_us(ack_ts) < (call->peer->srtt_us >> 3)) if (ktime_to_us(ack_ts) < (call->peer->srtt_us >> 3))
goto out; goto out;
......
...@@ -159,7 +159,6 @@ struct rxrpc_call *rxrpc_alloc_call(struct rxrpc_sock *rx, gfp_t gfp, ...@@ -159,7 +159,6 @@ struct rxrpc_call *rxrpc_alloc_call(struct rxrpc_sock *rx, gfp_t gfp,
skb_queue_head_init(&call->recvmsg_queue); skb_queue_head_init(&call->recvmsg_queue);
skb_queue_head_init(&call->rx_oos_queue); skb_queue_head_init(&call->rx_oos_queue);
init_waitqueue_head(&call->waitq); init_waitqueue_head(&call->waitq);
spin_lock_init(&call->lock);
spin_lock_init(&call->notify_lock); spin_lock_init(&call->notify_lock);
spin_lock_init(&call->tx_lock); spin_lock_init(&call->tx_lock);
spin_lock_init(&call->input_lock); spin_lock_init(&call->input_lock);
...@@ -543,10 +542,8 @@ void rxrpc_release_call(struct rxrpc_sock *rx, struct rxrpc_call *call) ...@@ -543,10 +542,8 @@ void rxrpc_release_call(struct rxrpc_sock *rx, struct rxrpc_call *call)
ASSERTCMP(call->state, ==, RXRPC_CALL_COMPLETE); ASSERTCMP(call->state, ==, RXRPC_CALL_COMPLETE);
spin_lock_bh(&call->lock);
if (test_and_set_bit(RXRPC_CALL_RELEASED, &call->flags)) if (test_and_set_bit(RXRPC_CALL_RELEASED, &call->flags))
BUG(); BUG();
spin_unlock_bh(&call->lock);
rxrpc_put_call_slot(call); rxrpc_put_call_slot(call);
rxrpc_delete_call_timer(call); rxrpc_delete_call_timer(call);
......
...@@ -279,9 +279,6 @@ static bool rxrpc_receiving_reply(struct rxrpc_call *call) ...@@ -279,9 +279,6 @@ static bool rxrpc_receiving_reply(struct rxrpc_call *call)
rxrpc_seq_t top = READ_ONCE(call->tx_top); rxrpc_seq_t top = READ_ONCE(call->tx_top);
if (call->ackr_reason) { if (call->ackr_reason) {
spin_lock_bh(&call->lock);
call->ackr_reason = 0;
spin_unlock_bh(&call->lock);
now = jiffies; now = jiffies;
timo = now + MAX_JIFFY_OFFSET; timo = now + MAX_JIFFY_OFFSET;
WRITE_ONCE(call->resend_at, timo); WRITE_ONCE(call->resend_at, timo);
......
...@@ -229,13 +229,9 @@ static int rxrpc_send_ack_packet(struct rxrpc_local *local, struct rxrpc_txbuf * ...@@ -229,13 +229,9 @@ static int rxrpc_send_ack_packet(struct rxrpc_local *local, struct rxrpc_txbuf *
if (txb->ack.reason == RXRPC_ACK_IDLE) if (txb->ack.reason == RXRPC_ACK_IDLE)
clear_bit(RXRPC_CALL_IDLE_ACK_PENDING, &call->flags); clear_bit(RXRPC_CALL_IDLE_ACK_PENDING, &call->flags);
spin_lock_bh(&call->lock);
n = rxrpc_fill_out_ack(conn, call, txb); n = rxrpc_fill_out_ack(conn, call, txb);
spin_unlock_bh(&call->lock); if (n == 0)
if (n == 0) {
kfree(pkt);
return 0; return 0;
}
iov[0].iov_base = &txb->wire; iov[0].iov_base = &txb->wire;
iov[0].iov_len = sizeof(txb->wire) + sizeof(txb->ack) + n; iov[0].iov_len = sizeof(txb->wire) + sizeof(txb->ack) + n;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment