aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorFaisal Latif <flatif@neteffect.com>2008-09-26 16:08:10 -0400
committerRoland Dreier <rolandd@cisco.com>2008-09-30 18:35:49 -0400
commit1bb28499979d926806139bbdef6969fc37621118 (patch)
tree74b5edeb01621c78498707715e4ccebfff5ce7ed /drivers
parent9d156947c734747065178331e0c95745cf3a55e1 (diff)
RDMA/nes: Handle AE bounds violation
Handle async error NES_AEQE_AEID_AMP_BOUNDS_VIOLATION. Signed-off-by: Faisal Latif <flatif@neteffect.com> Signed-off-by: Sweta Bhatt <sweta.bhatt@einfochips.com> Signed-off-by: Chien Tung <ctung@neteffect.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/infiniband/hw/nes/nes_hw.c16
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);