.. | .. |
---|
123 | 123 | struct c4iw_qp *qhp; |
---|
124 | 124 | u32 cqid; |
---|
125 | 125 | |
---|
126 | | - spin_lock_irq(&dev->lock); |
---|
127 | | - qhp = get_qhp(dev, CQE_QPID(err_cqe)); |
---|
| 126 | + xa_lock_irq(&dev->qps); |
---|
| 127 | + qhp = xa_load(&dev->qps, CQE_QPID(err_cqe)); |
---|
128 | 128 | if (!qhp) { |
---|
129 | 129 | pr_err("BAD AE qpid 0x%x opcode %d status 0x%x type %d wrid.hi 0x%x wrid.lo 0x%x\n", |
---|
130 | 130 | CQE_QPID(err_cqe), |
---|
131 | 131 | CQE_OPCODE(err_cqe), CQE_STATUS(err_cqe), |
---|
132 | 132 | CQE_TYPE(err_cqe), CQE_WRID_HI(err_cqe), |
---|
133 | 133 | CQE_WRID_LOW(err_cqe)); |
---|
134 | | - spin_unlock_irq(&dev->lock); |
---|
| 134 | + xa_unlock_irq(&dev->qps); |
---|
135 | 135 | goto out; |
---|
136 | 136 | } |
---|
137 | 137 | |
---|
.. | .. |
---|
146 | 146 | CQE_OPCODE(err_cqe), CQE_STATUS(err_cqe), |
---|
147 | 147 | CQE_TYPE(err_cqe), CQE_WRID_HI(err_cqe), |
---|
148 | 148 | CQE_WRID_LOW(err_cqe)); |
---|
149 | | - spin_unlock_irq(&dev->lock); |
---|
| 149 | + xa_unlock_irq(&dev->qps); |
---|
150 | 150 | goto out; |
---|
151 | 151 | } |
---|
152 | 152 | |
---|
153 | 153 | c4iw_qp_add_ref(&qhp->ibqp); |
---|
154 | 154 | atomic_inc(&chp->refcnt); |
---|
155 | | - spin_unlock_irq(&dev->lock); |
---|
| 155 | + xa_unlock_irq(&dev->qps); |
---|
156 | 156 | |
---|
157 | 157 | /* Bad incoming write */ |
---|
158 | 158 | if (RQ_TYPE(err_cqe) && |
---|
.. | .. |
---|
225 | 225 | struct c4iw_cq *chp; |
---|
226 | 226 | unsigned long flag; |
---|
227 | 227 | |
---|
228 | | - spin_lock_irqsave(&dev->lock, flag); |
---|
229 | | - chp = get_chp(dev, qid); |
---|
| 228 | + xa_lock_irqsave(&dev->cqs, flag); |
---|
| 229 | + chp = xa_load(&dev->cqs, qid); |
---|
230 | 230 | if (chp) { |
---|
231 | 231 | atomic_inc(&chp->refcnt); |
---|
232 | | - spin_unlock_irqrestore(&dev->lock, flag); |
---|
| 232 | + xa_unlock_irqrestore(&dev->cqs, flag); |
---|
233 | 233 | t4_clear_cq_armed(&chp->cq); |
---|
234 | 234 | spin_lock_irqsave(&chp->comp_handler_lock, flag); |
---|
235 | 235 | (*chp->ibcq.comp_handler)(&chp->ibcq, chp->ibcq.cq_context); |
---|
.. | .. |
---|
238 | 238 | wake_up(&chp->wait); |
---|
239 | 239 | } else { |
---|
240 | 240 | pr_debug("unknown cqid 0x%x\n", qid); |
---|
241 | | - spin_unlock_irqrestore(&dev->lock, flag); |
---|
| 241 | + xa_unlock_irqrestore(&dev->cqs, flag); |
---|
242 | 242 | } |
---|
243 | 243 | return 0; |
---|
244 | 244 | } |
---|