OSDN Git Service

RDMA/nldev: Return port capability flag for IB only
authorLeon Romanovsky <leonro@mellanox.com>
Tue, 5 Jun 2018 04:26:51 +0000 (07:26 +0300)
committerJason Gunthorpe <jgg@mellanox.com>
Mon, 18 Jun 2018 17:09:05 +0000 (11:09 -0600)
Port capability flag represents IBTA PortInfo:CapabilityMask,
but was mistakenly mixed with non-relevant fields. Return that
information for IB only.

Link: https://patchwork.kernel.org/patch/10386245/
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/core/nldev.c

index 340c7be..0385ab4 100644 (file)
@@ -237,15 +237,15 @@ static int fill_port_info(struct sk_buff *msg,
        if (ret)
                return ret;
 
-       BUILD_BUG_ON(sizeof(attr.port_cap_flags) > sizeof(u64));
-       if (nla_put_u64_64bit(msg, RDMA_NLDEV_ATTR_CAP_FLAGS,
-                             (u64)attr.port_cap_flags, RDMA_NLDEV_ATTR_PAD))
-               return -EMSGSIZE;
-       if (rdma_protocol_ib(device, port) &&
-           nla_put_u64_64bit(msg, RDMA_NLDEV_ATTR_SUBNET_PREFIX,
-                             attr.subnet_prefix, RDMA_NLDEV_ATTR_PAD))
-               return -EMSGSIZE;
        if (rdma_protocol_ib(device, port)) {
+               BUILD_BUG_ON(sizeof(attr.port_cap_flags) > sizeof(u64));
+               if (nla_put_u64_64bit(msg, RDMA_NLDEV_ATTR_CAP_FLAGS,
+                                     (u64)attr.port_cap_flags,
+                                     RDMA_NLDEV_ATTR_PAD))
+                       return -EMSGSIZE;
+               if (nla_put_u64_64bit(msg, RDMA_NLDEV_ATTR_SUBNET_PREFIX,
+                                     attr.subnet_prefix, RDMA_NLDEV_ATTR_PAD))
+                       return -EMSGSIZE;
                if (nla_put_u32(msg, RDMA_NLDEV_ATTR_LID, attr.lid))
                        return -EMSGSIZE;
                if (nla_put_u32(msg, RDMA_NLDEV_ATTR_SM_LID, attr.sm_lid))