* [PATCH] st: convert to using driver attr groups for sysfs
@ 2015-06-23 8:11 Seymour, Shane M
2015-06-24 2:37 ` Greg KH
2015-06-24 20:19 ` "Kai Mäkisara (Kolumbus)"
0 siblings, 2 replies; 3+ messages in thread
From: Seymour, Shane M @ 2015-06-23 8:11 UTC (permalink / raw)
To: linux-scsi@vger.kernel.org, Kai.Makisara@kolumbus.fi
Cc: linux-api@vger.kernel.org
This patch changes the st driver to use attribute groups so
driver sysfs files are created automatically. See the
following for reference:
http://kroah.com/log/blog/2013/06/26/how-to-create-a-sysfs-file-correctly/
Signed-off-by: Shane Seymour <shane.seymour@hp.com>
---
--- a/drivers/scsi/st.c 2015-06-22 14:20:40.829612661 -0500
+++ b/drivers/scsi/st.c 2015-06-22 15:49:49.357248393 -0500
@@ -85,6 +85,7 @@ static int debug_flag;
static struct class st_sysfs_class;
static const struct attribute_group *st_dev_groups[];
+static const struct attribute_group *st_drv_groups[];
MODULE_AUTHOR("Kai Makisara");
MODULE_DESCRIPTION("SCSI tape (st) driver");
@@ -198,15 +199,13 @@ static int sgl_unmap_user_pages(struct s
static int st_probe(struct device *);
static int st_remove(struct device *);
-static int do_create_sysfs_files(void);
-static void do_remove_sysfs_files(void);
-
static struct scsi_driver st_template = {
.gendrv = {
.name = "st",
.owner = THIS_MODULE,
.probe = st_probe,
.remove = st_remove,
+ .groups = st_drv_groups,
},
};
@@ -4404,14 +4403,8 @@ static int __init init_st(void)
if (err)
goto err_chrdev;
- err = do_create_sysfs_files();
- if (err)
- goto err_scsidrv;
-
return 0;
-err_scsidrv:
- scsi_unregister_driver(&st_template.gendrv);
err_chrdev:
unregister_chrdev_region(MKDEV(SCSI_TAPE_MAJOR, 0),
ST_MAX_TAPE_ENTRIES);
@@ -4422,7 +4415,6 @@ err_class:
static void __exit exit_st(void)
{
- do_remove_sysfs_files();
scsi_unregister_driver(&st_template.gendrv);
unregister_chrdev_region(MKDEV(SCSI_TAPE_MAJOR, 0),
ST_MAX_TAPE_ENTRIES);
@@ -4459,44 +4451,14 @@ static ssize_t st_version_show(struct de
}
static DRIVER_ATTR(version, S_IRUGO, st_version_show, NULL);
-static int do_create_sysfs_files(void)
-{
- struct device_driver *sysfs = &st_template.gendrv;
- int err;
-
- err = driver_create_file(sysfs, &driver_attr_try_direct_io);
- if (err)
- return err;
- err = driver_create_file(sysfs, &driver_attr_fixed_buffer_size);
- if (err)
- goto err_try_direct_io;
- err = driver_create_file(sysfs, &driver_attr_max_sg_segs);
- if (err)
- goto err_attr_fixed_buf;
- err = driver_create_file(sysfs, &driver_attr_version);
- if (err)
- goto err_attr_max_sg;
-
- return 0;
-
-err_attr_max_sg:
- driver_remove_file(sysfs, &driver_attr_max_sg_segs);
-err_attr_fixed_buf:
- driver_remove_file(sysfs, &driver_attr_fixed_buffer_size);
-err_try_direct_io:
- driver_remove_file(sysfs, &driver_attr_try_direct_io);
- return err;
-}
-
-static void do_remove_sysfs_files(void)
-{
- struct device_driver *sysfs = &st_template.gendrv;
-
- driver_remove_file(sysfs, &driver_attr_version);
- driver_remove_file(sysfs, &driver_attr_max_sg_segs);
- driver_remove_file(sysfs, &driver_attr_fixed_buffer_size);
- driver_remove_file(sysfs, &driver_attr_try_direct_io);
-}
+static struct attribute *st_drv_attrs[] = {
+ &driver_attr_try_direct_io.attr,
+ &driver_attr_fixed_buffer_size.attr,
+ &driver_attr_max_sg_segs.attr,
+ &driver_attr_version.attr,
+ NULL,
+};
+ATTRIBUTE_GROUPS(st_drv);
/* The sysfs simple class interface */
static ssize_t
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] st: convert to using driver attr groups for sysfs
2015-06-23 8:11 [PATCH] st: convert to using driver attr groups for sysfs Seymour, Shane M
@ 2015-06-24 2:37 ` Greg KH
2015-06-24 20:19 ` "Kai Mäkisara (Kolumbus)"
1 sibling, 0 replies; 3+ messages in thread
From: Greg KH @ 2015-06-24 2:37 UTC (permalink / raw)
To: Seymour, Shane M
Cc: linux-scsi@vger.kernel.org, Kai.Makisara@kolumbus.fi,
linux-api@vger.kernel.org
On Tue, Jun 23, 2015 at 08:11:00AM +0000, Seymour, Shane M wrote:
> This patch changes the st driver to use attribute groups so
> driver sysfs files are created automatically. See the
> following for reference:
>
> http://kroah.com/log/blog/2013/06/26/how-to-create-a-sysfs-file-correctly/
>
> Signed-off-by: Shane Seymour <shane.seymour@hp.com>
Very nice, thanks for doing this.
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> ---
> --- a/drivers/scsi/st.c 2015-06-22 14:20:40.829612661 -0500
> +++ b/drivers/scsi/st.c 2015-06-22 15:49:49.357248393 -0500
> @@ -85,6 +85,7 @@ static int debug_flag;
>
> static struct class st_sysfs_class;
> static const struct attribute_group *st_dev_groups[];
> +static const struct attribute_group *st_drv_groups[];
>
> MODULE_AUTHOR("Kai Makisara");
> MODULE_DESCRIPTION("SCSI tape (st) driver");
> @@ -198,15 +199,13 @@ static int sgl_unmap_user_pages(struct s
> static int st_probe(struct device *);
> static int st_remove(struct device *);
>
> -static int do_create_sysfs_files(void);
> -static void do_remove_sysfs_files(void);
> -
> static struct scsi_driver st_template = {
> .gendrv = {
> .name = "st",
> .owner = THIS_MODULE,
> .probe = st_probe,
> .remove = st_remove,
> + .groups = st_drv_groups,
> },
> };
>
> @@ -4404,14 +4403,8 @@ static int __init init_st(void)
> if (err)
> goto err_chrdev;
>
> - err = do_create_sysfs_files();
> - if (err)
> - goto err_scsidrv;
> -
> return 0;
>
> -err_scsidrv:
> - scsi_unregister_driver(&st_template.gendrv);
> err_chrdev:
> unregister_chrdev_region(MKDEV(SCSI_TAPE_MAJOR, 0),
> ST_MAX_TAPE_ENTRIES);
> @@ -4422,7 +4415,6 @@ err_class:
>
> static void __exit exit_st(void)
> {
> - do_remove_sysfs_files();
> scsi_unregister_driver(&st_template.gendrv);
> unregister_chrdev_region(MKDEV(SCSI_TAPE_MAJOR, 0),
> ST_MAX_TAPE_ENTRIES);
> @@ -4459,44 +4451,14 @@ static ssize_t st_version_show(struct de
> }
> static DRIVER_ATTR(version, S_IRUGO, st_version_show, NULL);
For a future patch, you might want to convert these type of declarations
to use DRIVER_ATTR_RO() and friends.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] st: convert to using driver attr groups for sysfs
2015-06-23 8:11 [PATCH] st: convert to using driver attr groups for sysfs Seymour, Shane M
2015-06-24 2:37 ` Greg KH
@ 2015-06-24 20:19 ` "Kai Mäkisara (Kolumbus)"
1 sibling, 0 replies; 3+ messages in thread
From: "Kai Mäkisara (Kolumbus)" @ 2015-06-24 20:19 UTC (permalink / raw)
To: Seymour, Shane M; +Cc: linux-scsi@vger.kernel.org, linux-api@vger.kernel.org
> On 23.6.2015, at 11.11, Seymour, Shane M <shane.seymour@hp.com> wrote:
>
> This patch changes the st driver to use attribute groups so
> driver sysfs files are created automatically. See the
> following for reference:
>
> http://kroah.com/log/blog/2013/06/26/how-to-create-a-sysfs-file-correctly/
>
Acked-by: Kai Mäkisara <kai.makisara@kolumbus.fi>
Thanks,
Kai
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-06-24 20:24 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-06-23 8:11 [PATCH] st: convert to using driver attr groups for sysfs Seymour, Shane M
2015-06-24 2:37 ` Greg KH
2015-06-24 20:19 ` "Kai Mäkisara (Kolumbus)"
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox