Message ID | 20240306012226.3398927-7-ipylypiv@google.com |
---|---|
State | New |
Headers | show |
Series | NCQ Priority sysfs sttributes for libsas | expand |
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 >
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 --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,