Re: [PATCH rdma-next v1 2/4] RDMA/hfi1: Move grh_required into update_sm_ah

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jul 05, 2018 at 09:41:36AM -0400, Hal Rosenstock wrote:
> On 7/4/2018 8:57 AM, Leon Romanovsky wrote:
> > From: Jason Gunthorpe <jgg@xxxxxxxxxxxx>
> >
> > grh_required is intended to be a global setting where all AV's will require
> > a GRH, not just the sm_lid. Move the special logic to the creation of the
> > SM AH.
> >
> > Signed-off-by: Jason Gunthorpe <jgg@xxxxxxxxxxxx>
> > Signed-off-by: Artemy Kovalyov <artemyko@xxxxxxxxxxxx>
> > Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxxxx>
> > ---
> >  drivers/infiniband/core/sa_query.c | 28 ++++++++++++++++++----------
> >  drivers/infiniband/hw/hfi1/verbs.c |  9 ---------
> >  2 files changed, 18 insertions(+), 19 deletions(-)
> >
> > diff --git a/drivers/infiniband/core/sa_query.c b/drivers/infiniband/core/sa_query.c
> > index 7005afb8a712..0ba09486b09c 100644
> > --- a/drivers/infiniband/core/sa_query.c
> > +++ b/drivers/infiniband/core/sa_query.c
> > @@ -2328,16 +2328,24 @@ static void update_sm_ah(struct work_struct *work)
> >  	rdma_ah_set_dlid(&ah_attr, port_attr.sm_lid);
> >  	rdma_ah_set_sl(&ah_attr, port_attr.sm_sl);
> >  	rdma_ah_set_port_num(&ah_attr, port->port_num);
> > -	if (port_attr.grh_required) {
> > -		if (ah_attr.type == RDMA_AH_ATTR_TYPE_OPA) {
> > -			rdma_ah_set_make_grd(&ah_attr, true);
> > -		} else {
> > -			rdma_ah_set_ah_flags(&ah_attr, IB_AH_GRH);
> > -			rdma_ah_set_subnet_prefix(&ah_attr,
> > -						  cpu_to_be64(port_attr.subnet_prefix));
> > -			rdma_ah_set_interface_id(&ah_attr,
> > -						 cpu_to_be64(IB_SA_WELL_KNOWN_GUID));
> > -		}
> > +
> > +	/*
> > +	 * sm_lid of 0xFFFF needs special handling so that it can be
>
> Would this be better as "OPA sm_lid ..." ?
>
> > +	 * differentiated from a permissve LID of 0xFFFF.  We set the
>
> typo: permissve -> permissive

Thanks Hal,

I'll wait for more feedback and will resend if Jason/Doug decides don't
fix it locally.

>
> > +	 * grh_required flag here so the SA can program the DGID in the
> > +	 * address handle appropriately
> > +	 */
> > +	if (ah_attr.type == RDMA_AH_ATTR_TYPE_OPA &&
> > +	    (port_attr.grh_required ||
> > +	     port_attr.sm_lid == be16_to_cpu(IB_LID_PERMISSIVE)))
> > +		rdma_ah_set_make_grd(&ah_attr, true);
> > +
> > +	if (ah_attr.type == RDMA_AH_ATTR_TYPE_IB && port_attr.grh_required) {
> > +		rdma_ah_set_ah_flags(&ah_attr, IB_AH_GRH);
> > +		rdma_ah_set_subnet_prefix(&ah_attr,
> > +					  cpu_to_be64(port_attr.subnet_prefix));
> > +		rdma_ah_set_interface_id(&ah_attr,
> > +					 cpu_to_be64(IB_SA_WELL_KNOWN_GUID));
> >  	}
> >
> >  	new_ah->ah = rdma_create_ah(port->agent->qp->pd, &ah_attr);
> > diff --git a/drivers/infiniband/hw/hfi1/verbs.c b/drivers/infiniband/hw/hfi1/verbs.c
> > index 5cef1224fa9c..2b07a5667ec8 100644
> > --- a/drivers/infiniband/hw/hfi1/verbs.c
> > +++ b/drivers/infiniband/hw/hfi1/verbs.c
> > @@ -1498,15 +1498,6 @@ static int query_port(struct rvt_dev_info *rdi, u8 port_num,
> >  	props->active_mtu = !valid_ib_mtu(ppd->ibmtu) ? props->max_mtu :
> >  		mtu_to_enum(ppd->ibmtu, IB_MTU_4096);
> >
> > -	/*
> > -	 * sm_lid of 0xFFFF needs special handling so that it can
> > -	 * be differentiated from a permissve LID of 0xFFFF.
> > -	 * We set the grh_required flag here so the SA can program
> > -	 * the DGID in the address handle appropriately
> > -	 */
> > -	if (props->sm_lid == be16_to_cpu(IB_LID_PERMISSIVE))
> > -		props->grh_required = true;
> > -
> >  	return 0;
> >  }
> >
> >

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux