[openib-general] Re: ib_send_cm_req failes with error -22

susan ssbyrn at yahoo.com
Thu Apr 20 14:24:11 PDT 2006


Sean Hefty <mshefty <at> ichips.intel.com> writes:
> 
> -22 (EINVAL) indicates that one of the parameters is invalid. 
> The initial checks done by the ib_cm are:
> 
> 	/* peer-to-peer not supported */
> 	if (param->peer_to_peer)
> 		return -EINVAL;
> 
> 	if (!param->primary_path)
> 		return -EINVAL;
> 
> 	if (param->qp_type != IB_QPT_RC && param->qp_type != IB_QPT_UC)
> 		return -EINVAL;
> 
> 	if (param->private_data &&
> 	    param->private_data_len > IB_CM_REQ_PRIVATE_DATA_SIZE)
> 		return -EINVAL;
> 
> 	if (param->alternate_path &&
> 	    (param->alternate_path->pkey != param->primary_path->pkey ||
> 	     param->alternate_path->mtu != param->primary_path->mtu))
> 		return -EINVAL;
> 
> Can you verify that the input parameter would pass these tests? 
> There are some more tests further down in the code that could
> also return this same error if these all pass.  Posting the
> actual code that calls ib_send_cm_req() may also help debug the
> problem.
> 
> - Sean
> 


Sean,
  the error is returned by cm_init_av_by_path routine in
ib_send_cm_req(). the function fails because it is unable
to lookup gid in its cache -- function ib_find_cached_gid()
fails.

  i don't why gid isn't cached. did i missed something.

  where can i download stable version of ib gen2 stack?

thanks,
susan.







More information about the general mailing list