From: Dennis Dalessandro <dennis.dalessandro-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
To: dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Mike Marciniszyn
<mike.marciniszyn-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
Sebastian Sanchez
<sebastian.sanchez-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
stable-u79uwXL29TY76Z2rM5mHXA@public.gmane.org#4.6+
Subject: [PATCH 03/10] IB/hfi1: Fix hard lockup due to not using save/restore spin lock
Date: Tue, 24 May 2016 12:50:23 -0700 [thread overview]
Message-ID: <20160524195022.19706.52616.stgit@scvm10.sc.intel.com> (raw)
In-Reply-To: <20160524194746.19706.42976.stgit-9QXIwq+3FY+1XWohqUldA0EOCMrvLtNR@public.gmane.org>
From: Mike Marciniszyn <mike.marciniszyn-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
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.
Cc: stable-u79uwXL29TY76Z2rM5mHXA@public.gmane.org # 4.6+
Reviewed-by: Sebastian Sanchez <sebastian.sanchez-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
---
drivers/infiniband/hw/hfi1/qp.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/infiniband/hw/hfi1/qp.c b/drivers/infiniband/hw/hfi1/qp.c
index 14f889e..1a942ff 100644
--- a/drivers/infiniband/hw/hfi1/qp.c
+++ b/drivers/infiniband/hw/hfi1/qp.c
@@ -512,6 +512,7 @@ static void iowait_wakeup(struct iowait *wait, int reason)
static 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 iowait *wait)
* 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);
}
/**
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2016-05-24 19:50 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-24 19:50 [PATCH 00/10] IB/hfi1,rdmavt: Another set of fixes for 4.7 Dennis Dalessandro
[not found] ` <20160524194746.19706.42976.stgit-9QXIwq+3FY+1XWohqUldA0EOCMrvLtNR@public.gmane.org>
2016-05-24 19:50 ` [PATCH 01/10] IB/hfi1, qib: Add ieth to the packet header definitions Dennis Dalessandro
2016-05-24 19:50 ` [PATCH 02/10] IB/hfi1: Add tracing support for send with invalidate opcode Dennis Dalessandro
2016-05-24 19:50 ` Dennis Dalessandro [this message]
2016-05-24 19:50 ` [PATCH 04/10] IB/rdmavt: Max atomic value should be a u8 Dennis Dalessandro
2016-05-24 19:50 ` [PATCH 05/10] IB/rdamvt: Fix rdmavt s_ack_queue sizing Dennis Dalessandro
[not found] ` <20160524195039.19706.66866.stgit-9QXIwq+3FY+1XWohqUldA0EOCMrvLtNR@public.gmane.org>
2016-05-25 18:29 ` Leon Romanovsky
[not found] ` <20160525182928.GP25500-2ukJVAZIZ/Y@public.gmane.org>
2016-05-25 19:05 ` Dennis Dalessandro
2016-05-24 19:50 ` [PATCH 06/10] IB/hfi1: Update pkey table properly after link down or FM start Dennis Dalessandro
2016-05-24 19:50 ` [PATCH 07/10] IB/hfi1: Add a retry for the first-time QSFP access Dennis Dalessandro
[not found] ` <6395227d-617c-bd70-2822-6b53843f8611@redhat.com>
[not found] ` <6395227d-617c-bd70-2822-6b53843f8611-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-05-26 17:39 ` Dennis Dalessandro
2016-05-24 19:51 ` [PATCH 08/10] IB/hfi1: Correct 8051 link parameter settings Dennis Dalessandro
2016-05-24 19:51 ` [PATCH 09/10] IB/hfi1: Fix pio map initialization Dennis Dalessandro
2016-05-24 19:51 ` [PATCH 10/10] IB/hfi1: Fix credit return threshold adjustment Dennis Dalessandro
[not found] ` <20160524195111.19706.76829.stgit-9QXIwq+3FY+1XWohqUldA0EOCMrvLtNR@public.gmane.org>
2016-05-25 13:36 ` Leon Romanovsky
[not found] ` <20160525133613.GN25500-2ukJVAZIZ/Y@public.gmane.org>
2016-05-25 15:27 ` Bart Van Assche
[not found] ` <602d7329-b8ee-0e90-3afb-726ec44fb190-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2016-05-25 18:52 ` Dennis Dalessandro
2016-05-26 16:25 ` [PATCH 00/10] IB/hfi1,rdmavt: Another set of fixes for 4.7 Doug Ledford
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160524195022.19706.52616.stgit@scvm10.sc.intel.com \
--to=dennis.dalessandro-ral2jqcrhueavxtiumwx3w@public.gmane.org \
--cc=dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mike.marciniszyn-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=sebastian.sanchez-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=stable-u79uwXL29TY76Z2rM5mHXA@public.gmane.org#4.6+ \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.