summaryrefslogtreecommitdiffstats
path: root/include/rdma
diff options
context:
space:
mode:
authorJason Gunthorpe <jgg@nvidia.com>2021-06-11 18:00:32 +0200
committerJason Gunthorpe <jgg@nvidia.com>2021-06-17 01:58:31 +0200
commitd7407d16699884817f3a93218e77b0801942362b (patch)
tree62354cafcb7d6ae509521eef88a4ab11393d07a4 /include/rdma
parentRDMA/hfi1: Use attributes for the port sysfs (diff)
downloadlinux-d7407d16699884817f3a93218e77b0801942362b.tar.xz
linux-d7407d16699884817f3a93218e77b0801942362b.zip
RDMA: Change ops->init_port to ops->port_groups
init_port was only being used to register sysfs attributes against the port kobject. Now that all users are creating static attribute_group's we can simply set the attribute_group list in the ops and the core code can just handle it directly. This makes all the sysfs management quite straightforward and prevents any driver from abusing the naked port kobject in future because no driver code can access it. Link: https://lore.kernel.org/r/114f68f3d921460eafe14cea5a80ca65d81729c3.1623427137.git.leonro@nvidia.com Signed-off-by: Leon Romanovsky <leonro@nvidia.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Diffstat (limited to 'include/rdma')
-rw-r--r--include/rdma/ib_sysfs.h4
-rw-r--r--include/rdma/ib_verbs.h9
2 files changed, 3 insertions, 10 deletions
diff --git a/include/rdma/ib_sysfs.h b/include/rdma/ib_sysfs.h
index f869d0e4fd30..3b77cfd74d9a 100644
--- a/include/rdma/ib_sysfs.h
+++ b/include/rdma/ib_sysfs.h
@@ -31,10 +31,6 @@ struct ib_port_attribute {
#define IB_PORT_ATTR_WO(_name) \
struct ib_port_attribute ib_port_attr_##_name = __ATTR_WO(_name)
-int ib_port_sysfs_create_groups(struct ib_device *ibdev, u32 port_num,
- const struct attribute_group **groups);
-void ib_port_sysfs_remove_groups(struct ib_device *ibdev, u32 port_num,
- const struct attribute_group **groups);
struct ib_device *ib_port_sysfs_get_ibdev_kobj(struct kobject *kobj,
u32 *port_num);
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index 5ca1cb82a543..303471585dde 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -2300,6 +2300,8 @@ struct ib_device_ops {
u32 uverbs_abi_ver;
unsigned int uverbs_no_driver_id_binding:1;
+ const struct attribute_group **port_groups;
+
int (*post_send)(struct ib_qp *qp, const struct ib_send_wr *send_wr,
const struct ib_send_wr **bad_send_wr);
int (*post_recv)(struct ib_qp *qp, const struct ib_recv_wr *recv_wr,
@@ -2546,12 +2548,7 @@ struct ib_device_ops {
*/
int (*get_hw_stats)(struct ib_device *device,
struct rdma_hw_stats *stats, u32 port, int index);
- /*
- * This function is called once for each port when a ib device is
- * registered.
- */
- int (*init_port)(struct ib_device *device, u32 port_num,
- struct kobject *port_sysfs);
+
/**
* Allows rdma drivers to add their own restrack attributes.
*/