diff options
-rw-r--r-- | drivers/infiniband/hw/nes/nes_hw.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/nes/nes_hw.c b/drivers/infiniband/hw/nes/nes_hw.c index fc45e9c808f1..5e13c26de07d 100644 --- a/drivers/infiniband/hw/nes/nes_hw.c +++ b/drivers/infiniband/hw/nes/nes_hw.c | |||
@@ -3191,6 +3191,22 @@ static void nes_process_iwarp_aeqe(struct nes_device *nesdev, | |||
3191 | nes_cm_disconn(nesqp); | 3191 | nes_cm_disconn(nesqp); |
3192 | break; | 3192 | break; |
3193 | /* TODO: additional AEs need to be here */ | 3193 | /* TODO: additional AEs need to be here */ |
3194 | case NES_AEQE_AEID_AMP_BOUNDS_VIOLATION: | ||
3195 | nesqp = *((struct nes_qp **)&context); | ||
3196 | spin_lock_irqsave(&nesqp->lock, flags); | ||
3197 | nesqp->hw_iwarp_state = iwarp_state; | ||
3198 | nesqp->hw_tcp_state = tcp_state; | ||
3199 | nesqp->last_aeq = async_event_id; | ||
3200 | spin_unlock_irqrestore(&nesqp->lock, flags); | ||
3201 | if (nesqp->ibqp.event_handler) { | ||
3202 | ibevent.device = nesqp->ibqp.device; | ||
3203 | ibevent.element.qp = &nesqp->ibqp; | ||
3204 | ibevent.event = IB_EVENT_QP_ACCESS_ERR; | ||
3205 | nesqp->ibqp.event_handler(&ibevent, | ||
3206 | nesqp->ibqp.qp_context); | ||
3207 | } | ||
3208 | nes_cm_disconn(nesqp); | ||
3209 | break; | ||
3194 | default: | 3210 | default: |
3195 | nes_debug(NES_DBG_AEQ, "Processing an iWARP related AE for QP, misc = 0x%04X\n", | 3211 | nes_debug(NES_DBG_AEQ, "Processing an iWARP related AE for QP, misc = 0x%04X\n", |
3196 | async_event_id); | 3212 | async_event_id); |