Re: [PATCH v3 35/46] scsi: pm8001: Switch to attribute groups

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Oct 8, 2021 at 10:25 PM Bart Van Assche <bvanassche@xxxxxxx> wrote:
>
> struct device supports attribute groups directly but does not support
> struct device_attribute directly. Hence switch to attribute groups.
>
> Signed-off-by: Bart Van Assche <bvanassche@xxxxxxx>
lgtm.
Acked-by: Jack Wang <jinpu.wang@xxxxxxxxx>
Thanks!
> ---
>  drivers/scsi/pm8001/pm8001_ctl.c  | 64 +++++++++++++++++--------------
>  drivers/scsi/pm8001/pm8001_init.c |  2 +-
>  drivers/scsi/pm8001/pm8001_sas.h  |  2 +-
>  3 files changed, 38 insertions(+), 30 deletions(-)
>
> diff --git a/drivers/scsi/pm8001/pm8001_ctl.c b/drivers/scsi/pm8001/pm8001_ctl.c
> index b25e447aa3bd..397eb9f6a1dd 100644
> --- a/drivers/scsi/pm8001/pm8001_ctl.c
> +++ b/drivers/scsi/pm8001/pm8001_ctl.c
> @@ -1002,34 +1002,42 @@ static ssize_t ctl_iop1_count_show(struct device *cdev,
>  }
>  static DEVICE_ATTR_RO(ctl_iop1_count);
>
> -struct device_attribute *pm8001_host_attrs[] = {
> -       &dev_attr_interface_rev,
> -       &dev_attr_controller_fatal_error,
> -       &dev_attr_fw_version,
> -       &dev_attr_update_fw,
> -       &dev_attr_aap_log,
> -       &dev_attr_iop_log,
> -       &dev_attr_fatal_log,
> -       &dev_attr_non_fatal_log,
> -       &dev_attr_non_fatal_count,
> -       &dev_attr_gsm_log,
> -       &dev_attr_max_out_io,
> -       &dev_attr_max_devices,
> -       &dev_attr_max_sg_list,
> -       &dev_attr_sas_spec_support,
> -       &dev_attr_logging_level,
> -       &dev_attr_event_log_size,
> -       &dev_attr_host_sas_address,
> -       &dev_attr_bios_version,
> -       &dev_attr_ib_log,
> -       &dev_attr_ob_log,
> -       &dev_attr_ila_version,
> -       &dev_attr_inc_fw_ver,
> -       &dev_attr_ctl_mpi_state,
> -       &dev_attr_ctl_hmi_error,
> -       &dev_attr_ctl_raae_count,
> -       &dev_attr_ctl_iop0_count,
> -       &dev_attr_ctl_iop1_count,
> +static struct attribute *pm8001_host_attrs[] = {
> +       &dev_attr_interface_rev.attr,
> +       &dev_attr_controller_fatal_error.attr,
> +       &dev_attr_fw_version.attr,
> +       &dev_attr_update_fw.attr,
> +       &dev_attr_aap_log.attr,
> +       &dev_attr_iop_log.attr,
> +       &dev_attr_fatal_log.attr,
> +       &dev_attr_non_fatal_log.attr,
> +       &dev_attr_non_fatal_count.attr,
> +       &dev_attr_gsm_log.attr,
> +       &dev_attr_max_out_io.attr,
> +       &dev_attr_max_devices.attr,
> +       &dev_attr_max_sg_list.attr,
> +       &dev_attr_sas_spec_support.attr,
> +       &dev_attr_logging_level.attr,
> +       &dev_attr_event_log_size.attr,
> +       &dev_attr_host_sas_address.attr,
> +       &dev_attr_bios_version.attr,
> +       &dev_attr_ib_log.attr,
> +       &dev_attr_ob_log.attr,
> +       &dev_attr_ila_version.attr,
> +       &dev_attr_inc_fw_ver.attr,
> +       &dev_attr_ctl_mpi_state.attr,
> +       &dev_attr_ctl_hmi_error.attr,
> +       &dev_attr_ctl_raae_count.attr,
> +       &dev_attr_ctl_iop0_count.attr,
> +       &dev_attr_ctl_iop1_count.attr,
>         NULL,
>  };
>
> +static const struct attribute_group pm8001_host_attr_group = {
> +       .attrs = pm8001_host_attrs
> +};
> +
> +const struct attribute_group *pm8001_host_groups[] = {
> +       &pm8001_host_attr_group,
> +       NULL
> +};
> diff --git a/drivers/scsi/pm8001/pm8001_init.c b/drivers/scsi/pm8001/pm8001_init.c
> index 7082fecf7ce8..bed8cc125544 100644
> --- a/drivers/scsi/pm8001/pm8001_init.c
> +++ b/drivers/scsi/pm8001/pm8001_init.c
> @@ -107,7 +107,7 @@ static struct scsi_host_template pm8001_sht = {
>  #ifdef CONFIG_COMPAT
>         .compat_ioctl           = sas_ioctl,
>  #endif
> -       .shost_attrs            = pm8001_host_attrs,
> +       .shost_groups           = pm8001_host_groups,
>         .track_queue_depth      = 1,
>  };
>
> diff --git a/drivers/scsi/pm8001/pm8001_sas.h b/drivers/scsi/pm8001/pm8001_sas.h
> index 7e999768bfd2..83eec16d021d 100644
> --- a/drivers/scsi/pm8001/pm8001_sas.h
> +++ b/drivers/scsi/pm8001/pm8001_sas.h
> @@ -733,7 +733,7 @@ ssize_t pm8001_get_gsm_dump(struct device *cdev, u32, char *buf);
>  int pm80xx_fatal_errors(struct pm8001_hba_info *pm8001_ha);
>  void pm8001_free_dev(struct pm8001_device *pm8001_dev);
>  /* ctl shared API */
> -extern struct device_attribute *pm8001_host_attrs[];
> +extern const struct attribute_group *pm8001_host_groups[];
>
>  static inline void
>  pm8001_ccb_task_free_done(struct pm8001_hba_info *pm8001_ha,



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux