It is unnecessary to call spin_lock_bh in a tasklet.
Signed-off-by: Jeff Xie <[email protected]>
---
drivers/infiniband/hw/bnxt_re/qplib_fp.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/infiniband/hw/bnxt_re/qplib_fp.c b/drivers/infiniband/hw/bnxt_re/qplib_fp.c
index 71c34d5..e2541c9 100644
--- a/drivers/infiniband/hw/bnxt_re/qplib_fp.c
+++ b/drivers/infiniband/hw/bnxt_re/qplib_fp.c
@@ -273,14 +273,14 @@ static void bnxt_qplib_service_nq(unsigned long data)
<< 32;
cq = (struct bnxt_qplib_cq *)(unsigned long)q_handle;
bnxt_qplib_arm_cq_enable(cq);
- spin_lock_bh(&cq->compl_lock);
+ spin_lock(&cq->compl_lock);
atomic_set(&cq->arm_state, 0);
if (!nq->cqn_handler(nq, (cq)))
num_cqne_processed++;
else
dev_warn(&nq->pdev->dev,
"cqn - type 0x%x not handled\n", type);
- spin_unlock_bh(&cq->compl_lock);
+ spin_unlock(&cq->compl_lock);
break;
}
case NQ_BASE_TYPE_SRQ_EVENT:
--
2.7.4
On Wed, Mar 20, 2019 at 12:36:37AM +0800, Jeff Xie wrote:
> It is unnecessary to call spin_lock_bh in a tasklet.
>
> Signed-off-by: Jeff Xie <[email protected]>
> ---
> drivers/infiniband/hw/bnxt_re/qplib_fp.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
I'm curious, how did you prove this was always in a tasklet?
Jason
It was only called in the tasklet context.
root@jeff:~/git/linux-next# git grep -in bnxt_qplib_service_nq
drivers/infiniband/hw/bnxt_re/qplib_fp.c:236:static void
bnxt_qplib_service_nq(unsigned long data)
drivers/infiniband/hw/bnxt_re/qplib_fp.c:390:
tasklet_init(&nq->worker, bnxt_qplib_service_nq,
thanks.
Jason Gunthorpe <[email protected]> 于2019年3月20日周三 上午3:22写道:
>
> On Wed, Mar 20, 2019 at 12:36:37AM +0800, Jeff Xie wrote:
> > It is unnecessary to call spin_lock_bh in a tasklet.
> >
> > Signed-off-by: Jeff Xie <[email protected]>
> > ---
> > drivers/infiniband/hw/bnxt_re/qplib_fp.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
>
> I'm curious, how did you prove this was always in a tasklet?
>
> Jason
--
jeff