[openib-general] Re: [PATCH] [SRP] Fix CM redirection in SRP

Grant Grundler iod00d at hp.com
Mon Sep 12 11:20:49 PDT 2005


On Mon, Sep 12, 2005 at 09:33:09AM -0700, Roland Dreier wrote:
...
> Index: infiniband/ulp/srp/ib_srp.c
> ===================================================================
> --- infiniband/ulp/srp/ib_srp.c	(revision 3372)
> +++ infiniband/ulp/srp/ib_srp.c	(working copy)
> @@ -386,11 +386,48 @@ static void srp_remove_work(void *target
>  	scsi_host_put(target->scsi_host);
>  }
>  
> +static int srp_connect_target(struct srp_target_port *target)
> +{
> +	int ret;
> +
> +	while (1) {
> +		init_completion(&target->done);
> +		ret = srp_send_req(target);
> +		if (ret)
> +			return ret;
> +		wait_for_completion(&target->done);
> +
> +		/*
> +		 * The CM event handling code will set status to
> +		 * SRP_PORT_REDIRECT if we get a port redirect REJ
> +		 * back, or SRP_DLID_REDIRECT if we get a lid/qp
> +		 * redirect REJ back.
> +		 */
> +		switch (target->status) {
> +		case 0:
> +			return 0;
> +
> +		case SRP_PORT_REDIRECT:
> +			ret = srp_lookup_path(target);
> +			if (ret)
> +				return ret;
> +			break;
> +
> +		case SRP_DLID_REDIRECT:
> +			break;
> +
> +		default:
> +			return target->status;
> +		}
> +	}
> +}

Roland,
Nothing is returned in the SRP_DLID_REDIRECT case.
I expect this will generate a compiler warning.
I have no clue what it's supposed to do in that case.

grant



More information about the general mailing list