diff mbox series

[v7,6/7] scsi: aic94xx: Add libsas SATA sysfs attributes group

Message ID 20240306012226.3398927-7-ipylypiv@google.com
State New
Headers show
Series NCQ Priority sysfs sttributes for libsas | expand

Commit Message

Igor Pylypiv March 6, 2024, 1:22 a.m. UTC
The added sysfs attributes group enables the configuration of NCQ Priority
feature for HBAs that rely on libsas to manage SATA devices.

Reviewed-by: John Garry <john.g.garry@oracle.com>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Jason Yan <yanaijie@huawei.com>
Signed-off-by: Igor Pylypiv <ipylypiv@google.com>
---
 drivers/scsi/aic94xx/aic94xx_init.c | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Niklas Cassel March 6, 2024, 10:55 a.m. UTC | #1
On Tue, Mar 05, 2024 at 05:22:25PM -0800, Igor Pylypiv wrote:
> The added sysfs attributes group enables the configuration of NCQ Priority
> feature for HBAs that rely on libsas to manage SATA devices.
> 
> Reviewed-by: John Garry <john.g.garry@oracle.com>
> Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
> Reviewed-by: Jason Yan <yanaijie@huawei.com>
> Signed-off-by: Igor Pylypiv <ipylypiv@google.com>
> ---
>  drivers/scsi/aic94xx/aic94xx_init.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/scsi/aic94xx/aic94xx_init.c b/drivers/scsi/aic94xx/aic94xx_init.c
> index 8a3340d8d7ad..ccccd0eb6275 100644
> --- a/drivers/scsi/aic94xx/aic94xx_init.c
> +++ b/drivers/scsi/aic94xx/aic94xx_init.c
> @@ -14,6 +14,7 @@
>  #include <linux/firmware.h>
>  #include <linux/slab.h>
>  
> +#include <scsi/sas_ata.h>
>  #include <scsi/scsi_host.h>
>  
>  #include "aic94xx.h"
> @@ -34,6 +35,7 @@ MODULE_PARM_DESC(use_msi, "\n"
>  static struct scsi_transport_template *aic94xx_transport_template;
>  static int asd_scan_finished(struct Scsi_Host *, unsigned long);
>  static void asd_scan_start(struct Scsi_Host *);
> +static const struct attribute_group *asd_sdev_groups[];
>  
>  static const struct scsi_host_template aic94xx_sht = {
>  	.module			= THIS_MODULE,
> @@ -60,6 +62,7 @@ static const struct scsi_host_template aic94xx_sht = {
>  	.compat_ioctl		= sas_ioctl,
>  #endif
>  	.track_queue_depth	= 1,
> +	.sdev_groups		= asd_sdev_groups,
>  };
>  
>  static int asd_map_memio(struct asd_ha_struct *asd_ha)
> @@ -951,6 +954,11 @@ static void asd_remove_driver_attrs(struct device_driver *driver)
>  	driver_remove_file(driver, &driver_attr_version);
>  }
>  
> +static const struct attribute_group *asd_sdev_groups[] = {
> +	&sas_ata_sdev_attr_group,
> +	NULL
> +};

If you move this in front of:
static const struct scsi_host_template aic94xx_sht = { };

I think that you can remove the forward declaration.


> +
>  static struct sas_domain_function_template aic94xx_transport_functions = {
>  	.lldd_dev_found		= asd_dev_found,
>  	.lldd_dev_gone		= asd_dev_gone,
> -- 
> 2.44.0.278.ge034bb2e1d-goog
>
Igor Pylypiv March 6, 2024, 9:17 p.m. UTC | #2
On Wed, Mar 06, 2024 at 11:55:48AM +0100, Niklas Cassel wrote:
> On Tue, Mar 05, 2024 at 05:22:25PM -0800, Igor Pylypiv wrote:
> > The added sysfs attributes group enables the configuration of NCQ Priority
> > feature for HBAs that rely on libsas to manage SATA devices.
> > 
> > Reviewed-by: John Garry <john.g.garry@oracle.com>
> > Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
> > Reviewed-by: Jason Yan <yanaijie@huawei.com>
> > Signed-off-by: Igor Pylypiv <ipylypiv@google.com>
> > ---
> >  drivers/scsi/aic94xx/aic94xx_init.c | 8 ++++++++
> >  1 file changed, 8 insertions(+)
> > 
> > diff --git a/drivers/scsi/aic94xx/aic94xx_init.c b/drivers/scsi/aic94xx/aic94xx_init.c
> > index 8a3340d8d7ad..ccccd0eb6275 100644
> > --- a/drivers/scsi/aic94xx/aic94xx_init.c
> > +++ b/drivers/scsi/aic94xx/aic94xx_init.c
> > @@ -14,6 +14,7 @@
> >  #include <linux/firmware.h>
> >  #include <linux/slab.h>
> >  
> > +#include <scsi/sas_ata.h>
> >  #include <scsi/scsi_host.h>
> >  
> >  #include "aic94xx.h"
> > @@ -34,6 +35,7 @@ MODULE_PARM_DESC(use_msi, "\n"
> >  static struct scsi_transport_template *aic94xx_transport_template;
> >  static int asd_scan_finished(struct Scsi_Host *, unsigned long);
> >  static void asd_scan_start(struct Scsi_Host *);
> > +static const struct attribute_group *asd_sdev_groups[];
> >  
> >  static const struct scsi_host_template aic94xx_sht = {
> >  	.module			= THIS_MODULE,
> > @@ -60,6 +62,7 @@ static const struct scsi_host_template aic94xx_sht = {
> >  	.compat_ioctl		= sas_ioctl,
> >  #endif
> >  	.track_queue_depth	= 1,
> > +	.sdev_groups		= asd_sdev_groups,
> >  };
> >  
> >  static int asd_map_memio(struct asd_ha_struct *asd_ha)
> > @@ -951,6 +954,11 @@ static void asd_remove_driver_attrs(struct device_driver *driver)
> >  	driver_remove_file(driver, &driver_attr_version);
> >  }
> >  
> > +static const struct attribute_group *asd_sdev_groups[] = {
> > +	&sas_ata_sdev_attr_group,
> > +	NULL
> > +};
> 
> If you move this in front of:
> static const struct scsi_host_template aic94xx_sht = { };
> 
> I think that you can remove the forward declaration.
> 

Same comment as for mvs_sht. Perhaps mvs_sht can be moved to the bottom
of the file (in a separate patch series) so that all forward declarations
can be removed?

> 
> > +
> >  static struct sas_domain_function_template aic94xx_transport_functions = {
> >  	.lldd_dev_found		= asd_dev_found,
> >  	.lldd_dev_gone		= asd_dev_gone,
> > -- 
> > 2.44.0.278.ge034bb2e1d-goog
> >
diff mbox series

Patch

diff --git a/drivers/scsi/aic94xx/aic94xx_init.c b/drivers/scsi/aic94xx/aic94xx_init.c
index 8a3340d8d7ad..ccccd0eb6275 100644
--- a/drivers/scsi/aic94xx/aic94xx_init.c
+++ b/drivers/scsi/aic94xx/aic94xx_init.c
@@ -14,6 +14,7 @@ 
 #include <linux/firmware.h>
 #include <linux/slab.h>
 
+#include <scsi/sas_ata.h>
 #include <scsi/scsi_host.h>
 
 #include "aic94xx.h"
@@ -34,6 +35,7 @@  MODULE_PARM_DESC(use_msi, "\n"
 static struct scsi_transport_template *aic94xx_transport_template;
 static int asd_scan_finished(struct Scsi_Host *, unsigned long);
 static void asd_scan_start(struct Scsi_Host *);
+static const struct attribute_group *asd_sdev_groups[];
 
 static const struct scsi_host_template aic94xx_sht = {
 	.module			= THIS_MODULE,
@@ -60,6 +62,7 @@  static const struct scsi_host_template aic94xx_sht = {
 	.compat_ioctl		= sas_ioctl,
 #endif
 	.track_queue_depth	= 1,
+	.sdev_groups		= asd_sdev_groups,
 };
 
 static int asd_map_memio(struct asd_ha_struct *asd_ha)
@@ -951,6 +954,11 @@  static void asd_remove_driver_attrs(struct device_driver *driver)
 	driver_remove_file(driver, &driver_attr_version);
 }
 
+static const struct attribute_group *asd_sdev_groups[] = {
+	&sas_ata_sdev_attr_group,
+	NULL
+};
+
 static struct sas_domain_function_template aic94xx_transport_functions = {
 	.lldd_dev_found		= asd_dev_found,
 	.lldd_dev_gone		= asd_dev_gone,