aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/ulp
diff options
context:
space:
mode:
authorIshai Rabinovitz <ishai@mellanox.co.il>2006-06-17 23:37:32 -0400
committerRoland Dreier <rolandd@cisco.com>2006-06-17 23:37:32 -0400
commitb7ac4ab497e44cba75fb0e9e5afca06776518934 (patch)
treed0d513d83ef71ea7530a3e57ccac41c3684a4fcb /drivers/infiniband/ulp
parentac83cbaa9a41344c3adf329ede607e58d887f354 (diff)
IB/srp: Handle DREQ events from CM
Handle IB_CM_DREQ_ERROR and IB_CM_DREQ_RECEIVED events from the CM, instead of just printing "Unhandled CM event". In the case of DREQ_ERROR, just ignore the event -- a TIMEWAIT_EXIT will be generated also. For DREQ_RECEIVED, send a DREP in response to shut the connection down cleanly. Signed-off-by: Ishai Rabinovitz <ishai@mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/ulp')
-rw-r--r--drivers/infiniband/ulp/srp/ib_srp.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c
index a01b73bb976e..4ba790f54a24 100644
--- a/drivers/infiniband/ulp/srp/ib_srp.c
+++ b/drivers/infiniband/ulp/srp/ib_srp.c
@@ -1196,11 +1196,10 @@ static int srp_cm_handler(struct ib_cm_id *cm_id, struct ib_cm_event *event)
1196 srp_cm_rej_handler(cm_id, event, target); 1196 srp_cm_rej_handler(cm_id, event, target);
1197 break; 1197 break;
1198 1198
1199 case IB_CM_MRA_RECEIVED: 1199 case IB_CM_DREQ_RECEIVED:
1200 printk(KERN_ERR PFX "MRA received\n"); 1200 printk(KERN_WARNING PFX "DREQ received - connection closed\n");
1201 break; 1201 if (ib_send_cm_drep(cm_id, NULL, 0))
1202 1202 printk(KERN_ERR PFX "Sending CM DREP failed\n");
1203 case IB_CM_DREP_RECEIVED:
1204 break; 1203 break;
1205 1204
1206 case IB_CM_TIMEWAIT_EXIT: 1205 case IB_CM_TIMEWAIT_EXIT:
@@ -1210,6 +1209,11 @@ static int srp_cm_handler(struct ib_cm_id *cm_id, struct ib_cm_event *event)
1210 target->status = 0; 1209 target->status = 0;
1211 break; 1210 break;
1212 1211
1212 case IB_CM_MRA_RECEIVED:
1213 case IB_CM_DREQ_ERROR:
1214 case IB_CM_DREP_RECEIVED:
1215 break;
1216
1213 default: 1217 default:
1214 printk(KERN_WARNING PFX "Unhandled CM event %d\n", event->event); 1218 printk(KERN_WARNING PFX "Unhandled CM event %d\n", event->event);
1215 break; 1219 break;