forked from Minki/linux
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>
This commit is contained in:
parent
ac83cbaa9a
commit
b7ac4ab497
@ -1196,11 +1196,10 @@ static int srp_cm_handler(struct ib_cm_id *cm_id, struct ib_cm_event *event)
|
||||
srp_cm_rej_handler(cm_id, event, target);
|
||||
break;
|
||||
|
||||
case IB_CM_MRA_RECEIVED:
|
||||
printk(KERN_ERR PFX "MRA received\n");
|
||||
break;
|
||||
|
||||
case IB_CM_DREP_RECEIVED:
|
||||
case IB_CM_DREQ_RECEIVED:
|
||||
printk(KERN_WARNING PFX "DREQ received - connection closed\n");
|
||||
if (ib_send_cm_drep(cm_id, NULL, 0))
|
||||
printk(KERN_ERR PFX "Sending CM DREP failed\n");
|
||||
break;
|
||||
|
||||
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)
|
||||
target->status = 0;
|
||||
break;
|
||||
|
||||
case IB_CM_MRA_RECEIVED:
|
||||
case IB_CM_DREQ_ERROR:
|
||||
case IB_CM_DREP_RECEIVED:
|
||||
break;
|
||||
|
||||
default:
|
||||
printk(KERN_WARNING PFX "Unhandled CM event %d\n", event->event);
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user