RDMA/srp: Use the attribute group mechanism for sysfs attributes
authorBart Van Assche <bvanassche@acm.org>
Thu, 25 Aug 2022 21:39:00 +0000 (14:39 -0700)
committerLeon Romanovsky <leonro@nvidia.com>
Sun, 28 Aug 2022 10:02:28 +0000 (13:02 +0300)
Simplify the SRP driver by using the attribute group mechanism instead
of calling device_create_file() explicitly.

Link: https://lore.kernel.org/r/20220825213900.864587-5-bvanassche@acm.org
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/ulp/srp/ib_srp.c

index 3f31a0e..1e777b2 100644 (file)
@@ -3181,8 +3181,13 @@ static void srp_release_dev(struct device *dev)
        kfree(host);
 }
 
+static struct attribute *srp_class_attrs[];
+
+ATTRIBUTE_GROUPS(srp_class);
+
 static struct class srp_class = {
        .name    = "infiniband_srp",
+       .dev_groups = srp_class_groups,
        .dev_release = srp_release_dev
 };
 
@@ -3888,6 +3893,13 @@ static ssize_t port_show(struct device *dev, struct device_attribute *attr,
 
 static DEVICE_ATTR_RO(port);
 
+static struct attribute *srp_class_attrs[] = {
+       &dev_attr_add_target.attr,
+       &dev_attr_ibdev.attr,
+       &dev_attr_port.attr,
+       NULL
+};
+
 static struct srp_host *srp_add_port(struct srp_device *device, u8 port)
 {
        struct srp_host *host;
@@ -3910,12 +3922,6 @@ static struct srp_host *srp_add_port(struct srp_device *device, u8 port)
                goto put_host;
        if (device_add(&host->dev))
                goto put_host;
-       if (device_create_file(&host->dev, &dev_attr_add_target))
-               goto put_host;
-       if (device_create_file(&host->dev, &dev_attr_ibdev))
-               goto put_host;
-       if (device_create_file(&host->dev, &dev_attr_port))
-               goto put_host;
 
        return host;