| .. | .. |
|---|
| 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 | } |
|---|