diff options
author | Ishai Rabinovitz <ishai@mellanox.co.il> | 2006-06-17 23:37:32 -0400 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2006-06-17 23:37:32 -0400 |
commit | b7ac4ab497e44cba75fb0e9e5afca06776518934 (patch) | |
tree | d0d513d83ef71ea7530a3e57ccac41c3684a4fcb /drivers/infiniband/ulp | |
parent | ac83cbaa9a41344c3adf329ede607e58d887f354 (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.c | 14 |
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; |