[ofa-general] Re: [PATCHv3] IB/ipoib: Fix ipoib handling for pkey reordering

Michael S. Tsirkin mst at mellanox.co.il
Thu Mar 1 06:56:44 PST 2007


> SM reconfiguration or failover possibly causes a shuffling of the values in the port pkey table. The current implementation only queries for the index of the pkey once, when it creates the device QP and after that moves it into working state, and hence
> does not address this scenario. Fix this by using the PKEY_CHANGE event as a trigger to reconfigure the device QP.

Please limit line length to 80 chars or so.

Also - does the patch attempt to fix some more issues?

> Index: b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
> ===================================================================
> --- a/drivers/infiniband/ulp/ipoib/ipoib_ib.c	2007-03-01 14:11:43.713304355 +0200
> +++ b/drivers/infiniband/ulp/ipoib/ipoib_ib.c	2007-03-01 16:14:17.003881103 +0200
> @@ -415,21 +415,22 @@ int ipoib_ib_dev_open(struct net_device 
>  
>  	ret = ipoib_init_qp(dev);
>  	if (ret) {
> -		ipoib_warn(priv, "ipoib_init_qp returned %d\n", ret);
> +		if (ret != -ENOENT)
> +			ipoib_warn(priv, "ipoib_init_qp returned %d\n", ret);
>  		return -1;
>  	}

What's the reason for this change?

> Index: b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
> ===================================================================
> --- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c	2007-03-01 14:11:43.743299033 +0200
> +++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c	2007-03-01 16:21:43.128181147 +0200
> @@ -232,9 +232,10 @@ static int ipoib_mcast_join_finish(struc
>  		ret = ipoib_mcast_attach(dev, be16_to_cpu(mcast->mcmember.mlid),
>  					 &mcast->mcmember.mgid);
>  		if (ret < 0) {
> -			ipoib_warn(priv, "couldn't attach QP to multicast group "
> -				   IPOIB_GID_FMT "\n",
> -				   IPOIB_GID_ARG(mcast->mcmember.mgid));
> +			if (ret != -ENXIO) /* No pkey found */
> +				ipoib_warn(priv, "couldn't attach QP to multicast group "
> +					   IPOIB_GID_FMT "\n",
> +					   IPOIB_GID_ARG(mcast->mcmember.mgid));
>  
>  			clear_bit(IPOIB_MCAST_FLAG_ATTACHED, &mcast->flags);
>  			return ret;

And this?

Thanks,
MST
-- 
MST




More information about the general mailing list