Patch "IB/hfi1: Fix hard lockup due to not using save/restore spin lock" has been added to the 4.6-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
IB/hfi1: Fix hard lockup due to not using save/restore spin lock
to the 4.6-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
ib-hfi1-fix-hard-lockup-due-to-not-using-save-restore-spin-lock.patch
and it can be found in the queue-4.6 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
7049de65c9e520886f06d6f9deceaaed5d93fb7cMon Sep 17 00:00:00 2001
From: Mike Marciniszyn <[email protected]>
Date: Tue, 24 May 2016 12:50:23 -0700
Subject: IB/hfi1: Fix hard lockup due to not using save/restore spin lock
From: Mike Marciniszyn <[email protected]>
commit 7049de65c9e520886f06d6f9deceaaed5d93fb7c upstream.
Commit b9b06cb6feda
("IB/hfi1: Fix missing lock/unlock in verbs drain callback") added a spin lock.
Unfortunately, the new lock code can be called from a base level interrupt state, and an interrupt that can get stacked will attempt to get the same lock.
Fix by using the flag save/restore spin lock variation.
--- drivers/staging/rdma/hfi1/qp.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
drivers/staging/rdma/hfi1/qp.c +3 -2
@@ -512,6 +512,7 @@ static void iowait_wakeup(struct iowaitstatic void iowait_sdma_drained (struct iowait *wait) {struct rvt_qp *qp =iowait_to_qp (wait); +unsigned long flags;/* * This happens when the send engine notes
@@ -519,12 +520,12 @@ static void iowait_sdma_drained(struct i* do the flush work until that QP's * sdma work has finished. */ -spin_lock (&qp->s_lock); +spin_lock_irqsave (&qp->s_lock, flags);if (qp->s_flags &RVT_S_WAIT_DMA ) { qp->s_flags &= ~RVT_S_WAIT_DMA ;hfi1_schedule_send (qp); } -spin_unlock (&qp->s_lock); +spin_unlock_irqrestore (&qp->s_lock, flags); }/**
Patches currently in stable-queue which might be from [email protected] are
queue-4.6/ib-hfi1-fix-hard-lockup-due-to-not-using-save-restore-spin-lock.patch