IB/core: Define 'ib' and 'roce' rdma_ah_attr types

rdma_ah_attr can now be either ib or roce allowing
core components to use one type or the other and also
to define attributes unique to a specific type. struct
ib_ah is also initialized with the type when its first
created. This ensures that calls such as modify_ah
dont modify the type of the address handle attribute.

Reviewed-by: Ira Weiny <ira.weiny@intel.com>
Reviewed-by: Don Hiatt <don.hiatt@intel.com>
Reviewed-by: Sean Hefty <sean.hefty@intel.com>
Reviewed-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
Signed-off-by: Dasaratharaman Chandramouli <dasaratharaman.chandramouli@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
Dasaratharaman Chandramouli
2017-04-29 14:41:29 -04:00
committed by Doug Ledford
parent d8966fcd4c
commit 44c58487d5
31 changed files with 141 additions and 76 deletions

View File

@@ -303,6 +303,7 @@ int mthca_ah_query(struct ib_ah *ibah, struct rdma_ah_attr *attr)
return -ENOSYS;
memset(attr, 0, sizeof *attr);
attr->type = ibah->type;
rdma_ah_set_dlid(attr, be16_to_cpu(ah->av->dlid));
rdma_ah_set_sl(attr, be32_to_cpu(ah->av->sl_tclass_flowlabel) >> 28);
rdma_ah_set_port_num(attr, port_num);

View File

@@ -82,6 +82,7 @@ static void update_sm_ah(struct mthca_dev *dev,
return;
memset(&ah_attr, 0, sizeof ah_attr);
ah_attr.type = rdma_ah_find_type(&dev->ib_dev, port_num);
rdma_ah_set_dlid(&ah_attr, lid);
rdma_ah_set_sl(&ah_attr, sl);
rdma_ah_set_port_num(&ah_attr, port_num);

View File

@@ -403,6 +403,7 @@ static void to_rdma_ah_attr(struct mthca_dev *dev,
if (port_num == 0 || port_num > dev->limits.num_ports)
return;
ah_attr->type = rdma_ah_find_type(&dev->ib_dev, port_num);
rdma_ah_set_port_num(ah_attr, port_num);
rdma_ah_set_dlid(ah_attr, be16_to_cpu(path->rlid));