Skip to content

Commit bbacf79

Browse files
hreineckekeithbusch
authored andcommitted
nvmet-tcp: use 'spin_lock_bh' for state_lock()
nvmet_tcp_schedule_release_queue() is called from socket state change callbacks, which may be called from an softirq context. So use 'spin_lock_bh' to avoid a spin lock warning. Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: Keith Busch <kbusch@kernel.org>
1 parent d680063 commit bbacf79

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

drivers/nvme/target/tcp.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1379,7 +1379,7 @@ static void nvmet_tcp_release_queue(struct kref *kref)
13791379

13801380
static void nvmet_tcp_schedule_release_queue(struct nvmet_tcp_queue *queue)
13811381
{
1382-
spin_lock(&queue->state_lock);
1382+
spin_lock_bh(&queue->state_lock);
13831383
if (queue->state == NVMET_TCP_Q_TLS_HANDSHAKE) {
13841384
/* Socket closed during handshake */
13851385
tls_handshake_cancel(queue->sock->sk);
@@ -1388,7 +1388,7 @@ static void nvmet_tcp_schedule_release_queue(struct nvmet_tcp_queue *queue)
13881388
queue->state = NVMET_TCP_Q_DISCONNECTING;
13891389
kref_put(&queue->kref, nvmet_tcp_release_queue);
13901390
}
1391-
spin_unlock(&queue->state_lock);
1391+
spin_unlock_bh(&queue->state_lock);
13921392
}
13931393

13941394
static inline void nvmet_tcp_arm_queue_deadline(struct nvmet_tcp_queue *queue)

0 commit comments

Comments
 (0)