mirror of
https://github.com/raspberrypi/linux.git
synced 2026-01-02 15:53:42 +00:00
rxrpc: Use irq-disabling spinlocks between app and I/O thread
Where a spinlock is used by both the application thread and the I/O thread, use irq-disabling locking so that an interrupt taken on the app thread doesn't also slow down the I/O thread. Signed-off-by: David Howells <dhowells@redhat.com> cc: Marc Dionne <marc.dionne@auristor.com> cc: linux-afs@lists.infradead.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
08d55d7cf3
commit
a2ea9a9072
@@ -424,7 +424,7 @@ static void rxrpc_input_queue_data(struct rxrpc_call *call, struct sk_buff *skb,
|
||||
struct rxrpc_skb_priv *sp = rxrpc_skb(skb);
|
||||
bool last = sp->hdr.flags & RXRPC_LAST_PACKET;
|
||||
|
||||
__skb_queue_tail(&call->recvmsg_queue, skb);
|
||||
skb_queue_tail(&call->recvmsg_queue, skb);
|
||||
rxrpc_input_update_ack_window(call, window, wtop);
|
||||
trace_rxrpc_receive(call, last ? why + 1 : why, sp->hdr.serial, sp->hdr.seq);
|
||||
if (last)
|
||||
@@ -501,7 +501,6 @@ static void rxrpc_input_data_one(struct rxrpc_call *call, struct sk_buff *skb,
|
||||
|
||||
rxrpc_get_skb(skb, rxrpc_skb_get_to_recvmsg);
|
||||
|
||||
spin_lock(&call->recvmsg_queue.lock);
|
||||
rxrpc_input_queue_data(call, skb, window, wtop, rxrpc_receive_queue);
|
||||
*_notify = true;
|
||||
|
||||
@@ -523,8 +522,6 @@ static void rxrpc_input_data_one(struct rxrpc_call *call, struct sk_buff *skb,
|
||||
rxrpc_receive_queue_oos);
|
||||
}
|
||||
|
||||
spin_unlock(&call->recvmsg_queue.lock);
|
||||
|
||||
call->ackr_sack_base = sack;
|
||||
} else {
|
||||
unsigned int slot;
|
||||
|
||||
Reference in New Issue
Block a user