Thanks, I applied the version below.

> This is an initial patch. Maybe it will be more efficient to initiate a 
> reconnect 
> in case we get IB_CM_DREQ_RECEIVED.  What do you think?

I guess it depends on when real targets would send DREQs.  In general
if a target is saying it wants to close a connection, it seems sort of
rude to try and reconnect immediately...

 - R.

Index: infiniband/ulp/srp/ib_srp.c
===================================================================
--- infiniband/ulp/srp/ib_srp.c (revision 7398)
+++ infiniband/ulp/srp/ib_srp.c (working copy)
@@ -1201,11 +1201,10 @@ static int srp_cm_handler(struct ib_cm_i
                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:
@@ -1215,6 +1214,11 @@ static int srp_cm_handler(struct ib_cm_i
                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;
_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to