RDMA/bnxt_re: Add support for modify_device hook
authorKalesh AP <kalesh-anakkur.purayil@broadcom.com>
Wed, 16 Oct 2024 07:55:45 +0000 (00:55 -0700)
committerLeon Romanovsky <leon@kernel.org>
Mon, 28 Oct 2024 18:59:32 +0000 (20:59 +0200)
Adds support for modify_device in the driver
for node desc changes.

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
Link: https://patch.msgid.link/1729065346-1364-5-git-send-email-selvin.xavier@broadcom.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/hw/bnxt_re/ib_verbs.c
drivers/infiniband/hw/bnxt_re/ib_verbs.h
drivers/infiniband/hw/bnxt_re/main.c

index 55a3cc8..2a21a90 100644 (file)
@@ -211,6 +211,22 @@ int bnxt_re_query_device(struct ib_device *ibdev,
        return 0;
 }
 
+int bnxt_re_modify_device(struct ib_device *ibdev,
+                         int device_modify_mask,
+                         struct ib_device_modify *device_modify)
+{
+       ibdev_dbg(ibdev, "Modify device with mask 0x%x", device_modify_mask);
+
+       if (device_modify_mask & ~IB_DEVICE_MODIFY_NODE_DESC)
+               return -EOPNOTSUPP;
+
+       if (!(device_modify_mask & IB_DEVICE_MODIFY_NODE_DESC))
+               return 0;
+
+       memcpy(ibdev->node_desc, device_modify->node_desc, IB_DEVICE_NODE_DESC_MAX);
+       return 0;
+}
+
 /* Port */
 int bnxt_re_query_port(struct ib_device *ibdev, u32 port_num,
                       struct ib_port_attr *port_attr)
index b789e47..83a584e 100644 (file)
@@ -196,6 +196,9 @@ static inline bool bnxt_re_is_var_size_supported(struct bnxt_re_dev *rdev,
 int bnxt_re_query_device(struct ib_device *ibdev,
                         struct ib_device_attr *ib_attr,
                         struct ib_udata *udata);
+int bnxt_re_modify_device(struct ib_device *ibdev,
+                         int device_modify_mask,
+                         struct ib_device_modify *device_modify);
 int bnxt_re_query_port(struct ib_device *ibdev, u32 port_num,
                       struct ib_port_attr *port_attr);
 int bnxt_re_get_port_immutable(struct ib_device *ibdev, u32 port_num,
index 3a01818..d825eda 100644 (file)
@@ -911,6 +911,7 @@ static const struct ib_device_ops bnxt_re_dev_ops = {
        .post_srq_recv = bnxt_re_post_srq_recv,
        .query_ah = bnxt_re_query_ah,
        .query_device = bnxt_re_query_device,
+       .modify_device = bnxt_re_modify_device,
        .query_pkey = bnxt_re_query_pkey,
        .query_port = bnxt_re_query_port,
        .query_qp = bnxt_re_query_qp,