diff options
Diffstat (limited to 'drivers/infiniband/hw/hfi1/verbs_txreq.c')
-rw-r--r-- | drivers/infiniband/hw/hfi1/verbs_txreq.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/infiniband/hw/hfi1/verbs_txreq.c b/drivers/infiniband/hw/hfi1/verbs_txreq.c index bc95c4112c61..d8fb056526f8 100644 --- a/drivers/infiniband/hw/hfi1/verbs_txreq.c +++ b/drivers/infiniband/hw/hfi1/verbs_txreq.c | |||
@@ -92,11 +92,10 @@ void hfi1_put_txreq(struct verbs_txreq *tx) | |||
92 | 92 | ||
93 | struct verbs_txreq *__get_txreq(struct hfi1_ibdev *dev, | 93 | struct verbs_txreq *__get_txreq(struct hfi1_ibdev *dev, |
94 | struct rvt_qp *qp) | 94 | struct rvt_qp *qp) |
95 | __must_hold(&qp->s_lock) | ||
95 | { | 96 | { |
96 | struct verbs_txreq *tx = ERR_PTR(-EBUSY); | 97 | struct verbs_txreq *tx = ERR_PTR(-EBUSY); |
97 | unsigned long flags; | ||
98 | 98 | ||
99 | spin_lock_irqsave(&qp->s_lock, flags); | ||
100 | write_seqlock(&dev->iowait_lock); | 99 | write_seqlock(&dev->iowait_lock); |
101 | if (ib_rvt_state_ops[qp->state] & RVT_PROCESS_RECV_OK) { | 100 | if (ib_rvt_state_ops[qp->state] & RVT_PROCESS_RECV_OK) { |
102 | struct hfi1_qp_priv *priv; | 101 | struct hfi1_qp_priv *priv; |
@@ -116,7 +115,6 @@ struct verbs_txreq *__get_txreq(struct hfi1_ibdev *dev, | |||
116 | } | 115 | } |
117 | out: | 116 | out: |
118 | write_sequnlock(&dev->iowait_lock); | 117 | write_sequnlock(&dev->iowait_lock); |
119 | spin_unlock_irqrestore(&qp->s_lock, flags); | ||
120 | return tx; | 118 | return tx; |
121 | } | 119 | } |
122 | 120 | ||