include/rdma/opa_addr.h: Fix an endianness issue
authorBart Van Assche <bart.vanassche@wdc.com>
Mon, 2 Jul 2018 17:06:51 +0000 (10:06 -0700)
committerJason Gunthorpe <jgg@mellanox.com>
Tue, 3 Jul 2018 20:11:34 +0000 (14:11 -0600)
IB_MULTICAST_LID_BASE is defined as follows:

  #define IB_MULTICAST_LID_BASE   cpu_to_be16(0xC000)

Hence use be16_to_cpu() to convert it to CPU endianness. Compile-tested
only.

Fixes: af808ece5ce9 ("IB/SA: Check dlid before SA agent queries for ClassPortInfo")
Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
Cc: Venkata Sandeep Dhanalakota <venkata.s.dhanalakota@intel.com>
Cc: Mike Marciniszyn <mike.marciniszyn@intel.com>
Cc: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
include/rdma/opa_addr.h

index 2bbb7a6..66d4393 100644 (file)
@@ -120,7 +120,7 @@ static inline bool rdma_is_valid_unicast_lid(struct rdma_ah_attr *attr)
        if (attr->type == RDMA_AH_ATTR_TYPE_IB) {
                if (!rdma_ah_get_dlid(attr) ||
                    rdma_ah_get_dlid(attr) >=
-                   be32_to_cpu(IB_MULTICAST_LID_BASE))
+                   be16_to_cpu(IB_MULTICAST_LID_BASE))
                        return false;
        } else if (attr->type == RDMA_AH_ATTR_TYPE_OPA) {
                if (!rdma_ah_get_dlid(attr) ||