RE: [PATCH v2 10/17] IB/Verbs: Adopt management helpers for IB helpers

From: Hefty, Sean
Date: Tue Apr 07 2015 - 14:40:30 EST


> diff --git a/drivers/infiniband/core/sa_query.c
> b/drivers/infiniband/core/sa_query.c
> index f704254..4e61104 100644
> --- a/drivers/infiniband/core/sa_query.c
> +++ b/drivers/infiniband/core/sa_query.c
> @@ -540,7 +540,7 @@ int ib_init_ah_from_path(struct ib_device *device, u8
> port_num,
> ah_attr->port_num = port_num;
> ah_attr->static_rate = rec->rate;
>
> - force_grh = rdma_port_get_link_layer(device, port_num) ==
> IB_LINK_LAYER_ETHERNET;
> + force_grh = !rdma_transport_ib(device, port_num);
>
> if (rec->hop_limit > 1 || force_grh) {
> ah_attr->ah_flags = IB_AH_GRH;
> diff --git a/drivers/infiniband/core/verbs.c
> b/drivers/infiniband/core/verbs.c
> index 83370de..ca06f76 100644
> --- a/drivers/infiniband/core/verbs.c
> +++ b/drivers/infiniband/core/verbs.c
> @@ -200,11 +200,9 @@ int ib_init_ah_from_wc(struct ib_device *device, u8
> port_num, struct ib_wc *wc,
> u32 flow_class;
> u16 gid_index;
> int ret;
> - int is_eth = (rdma_port_get_link_layer(device, port_num) ==
> - IB_LINK_LAYER_ETHERNET);
>
> memset(ah_attr, 0, sizeof *ah_attr);
> - if (is_eth) {
> + if (!rdma_transport_ib(device, port_num)) {
> if (!(wc->wc_flags & IB_WC_GRH))
> return -EPROTOTYPE;
>
> @@ -873,7 +871,7 @@ int ib_resolve_eth_l2_attrs(struct ib_qp *qp,
> union ib_gid sgid;
>
> if ((*qp_attr_mask & IB_QP_AV) &&
> - (rdma_port_get_link_layer(qp->device, qp_attr->ah_attr.port_num)
> == IB_LINK_LAYER_ETHERNET)) {
> + (!rdma_transport_ib(qp->device, qp_attr->ah_attr.port_num))) {
> ret = ib_query_gid(qp->device, qp_attr->ah_attr.port_num,
> qp_attr->ah_attr.grh.sgid_index, &sgid);
> if (ret)

The above checks would be better as:

force_grh = rdma_transport_iboe(...)

They are RoCE/IBoE specific checks.
N‹§²æ¸›yú²X¬¶ÇvØ–)Þ{.nlj·¥Š{±‘êX§¶›¡Ü}©ž²ÆzÚj:+v‰¨¾«‘êZ+€Êzf£¢·hšˆ§~†­†Ûÿû®w¥¢¸?™¨è&¢)ßf”ùy§m…á«a¶Úÿ 0¶ìå