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:

committed by
Doug Ledford

parent
d8966fcd4c
commit
44c58487d5
@@ -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);
|
||||
|
@@ -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);
|
||||
|
@@ -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));
|
||||
|
Reference in New Issue
Block a user