From: Don Hiatt <don.hi...@intel.com>

[ Upstream commit 87daac68f77a3e21a1113f816e6a7be0b38bdde8 ]

iWarp devices do not support the creation of address handles
so return AH_ATTR_TYPE_UNDEFINED for all iWarp devices.

While we are here reduce the size of port_num to u8 and add
a comment.

Fixes: 44c58487d51a ("IB/core: Define 'ib' and 'roce' rdma_ah_attr types")
Reported-by: Parav Pandit <pa...@mellanox.com>
CC: Sean Hefty <sean.he...@intel.com>
Reviewed-by: Ira Weiny <ira.we...@intel.com>
Reviewed-by: Shiraz Saleem <shiraz.sal...@intel.com>
Signed-off-by: Don Hiatt <don.hi...@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessan...@intel.com>
Signed-off-by: Jason Gunthorpe <j...@mellanox.com>
Signed-off-by: Sasha Levin <alexander.le...@microsoft.com>
---
 include/rdma/ib_verbs.h | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index 20ebf9061962..411776de40e7 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -878,6 +878,7 @@ struct ib_mr_status {
 __attribute_const__ enum ib_rate mult_to_ib_rate(int mult);
 
 enum rdma_ah_attr_type {
+       RDMA_AH_ATTR_TYPE_UNDEFINED,
        RDMA_AH_ATTR_TYPE_IB,
        RDMA_AH_ATTR_TYPE_ROCE,
        RDMA_AH_ATTR_TYPE_OPA,
@@ -3789,17 +3790,24 @@ static inline void rdma_ah_set_grh(struct rdma_ah_attr 
*attr,
        grh->traffic_class = traffic_class;
 }
 
-/*Get AH type */
+/**
+ * rdma_ah_find_type - Return address handle type.
+ *
+ * @dev: Device to be checked
+ * @port_num: Port number
+ */
 static inline enum rdma_ah_attr_type rdma_ah_find_type(struct ib_device *dev,
-                                                      u32 port_num)
+                                                      u8 port_num)
 {
        if (rdma_protocol_roce(dev, port_num))
                return RDMA_AH_ATTR_TYPE_ROCE;
-       else if ((rdma_protocol_ib(dev, port_num)) &&
-                (rdma_cap_opa_ah(dev, port_num)))
-               return RDMA_AH_ATTR_TYPE_OPA;
-       else
+       if (rdma_protocol_ib(dev, port_num)) {
+               if (rdma_cap_opa_ah(dev, port_num))
+                       return RDMA_AH_ATTR_TYPE_OPA;
                return RDMA_AH_ATTR_TYPE_IB;
+       }
+
+       return RDMA_AH_ATTR_TYPE_UNDEFINED;
 }
 
 /**
-- 
2.15.1

Reply via email to