• Hal Rosenstock's avatar
    IB/mad: Require CM send method for everything except ClassPortInfo · 53370886
    Hal Rosenstock authored
    Receipt of CM MAD with other than the Send method for an attribute
    other than the ClassPortInfo attribute is invalid.
    
    CM attributes other than ClassPortInfo only use the send method.
    
    The SRP initiator does not maintain a timeout policy for CM connect
    requests relies on the CM layer to do that. The result was that
    the SRP initiator hung as the connect request never completed.
    
    A new SRP target has been observed to respond to Send CM REQ
    with GetResp of CM REQ with bad status. This is non conformant
    with IBA spec but exposes a vulnerability in the current MAD/CM
    code which will respond to the incoming GetResp of CM REQ as if
    it was a valid incoming Send of CM REQ rather than tossing
    this on the floor. It also causes the MAD layer not to
    retransmit the original REQ even though it has not received a REP.
    Reviewed-by: default avatarSagi Grimberg <sagig@mellanox.com>
    Signed-off-by: default avatarHal Rosenstock <hal@mellanox.com>
    Reviewed-by: default avatarIra Weiny <ira.weiny@intel.com>
    Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
    53370886
mad.c 94.7 KB