scsi: mpt3sas: Switch to attribute groups
authorBart Van Assche <bvanassche@acm.org>
Tue, 12 Oct 2021 23:35:41 +0000 (16:35 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sun, 17 Oct 2021 01:45:57 +0000 (21:45 -0400)
struct device supports attribute groups directly but does not support
struct device_attribute directly. Hence switch to attribute groups.

Link: https://lore.kernel.org/r/20211012233558.4066756-30-bvanassche@acm.org
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/mpt3sas/mpt3sas_base.h
drivers/scsi/mpt3sas/mpt3sas_ctl.c
drivers/scsi/mpt3sas/mpt3sas_scsih.c

index f87c091..db6a759 100644 (file)
@@ -1939,8 +1939,8 @@ mpt3sas_config_update_driver_trigger_pg4(struct MPT3SAS_ADAPTER *ioc,
        struct SL_WH_MPI_TRIGGERS_T *mpi_tg, bool set);
 
 /* ctl shared API */
-extern struct device_attribute *mpt3sas_host_attrs[];
-extern struct device_attribute *mpt3sas_dev_attrs[];
+extern const struct attribute_group *mpt3sas_host_groups[];
+extern const struct attribute_group *mpt3sas_dev_groups[];
 void mpt3sas_ctl_init(ushort hbas_to_enumerate);
 void mpt3sas_ctl_exit(ushort hbas_to_enumerate);
 u8 mpt3sas_ctl_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index,
index 1b79f01..0aabc97 100644 (file)
@@ -3842,37 +3842,46 @@ enable_sdev_max_qd_store(struct device *cdev,
 }
 static DEVICE_ATTR_RW(enable_sdev_max_qd);
 
-struct device_attribute *mpt3sas_host_attrs[] = {
-       &dev_attr_version_fw,
-       &dev_attr_version_bios,
-       &dev_attr_version_mpi,
-       &dev_attr_version_product,
-       &dev_attr_version_nvdata_persistent,
-       &dev_attr_version_nvdata_default,
-       &dev_attr_board_name,
-       &dev_attr_board_assembly,
-       &dev_attr_board_tracer,
-       &dev_attr_io_delay,
-       &dev_attr_device_delay,
-       &dev_attr_logging_level,
-       &dev_attr_fwfault_debug,
-       &dev_attr_fw_queue_depth,
-       &dev_attr_host_sas_address,
-       &dev_attr_ioc_reset_count,
-       &dev_attr_host_trace_buffer_size,
-       &dev_attr_host_trace_buffer,
-       &dev_attr_host_trace_buffer_enable,
-       &dev_attr_reply_queue_count,
-       &dev_attr_diag_trigger_master,
-       &dev_attr_diag_trigger_event,
-       &dev_attr_diag_trigger_scsi,
-       &dev_attr_diag_trigger_mpi,
-       &dev_attr_drv_support_bitmap,
-       &dev_attr_BRM_status,
-       &dev_attr_enable_sdev_max_qd,
+static struct attribute *mpt3sas_host_attrs[] = {
+       &dev_attr_version_fw.attr,
+       &dev_attr_version_bios.attr,
+       &dev_attr_version_mpi.attr,
+       &dev_attr_version_product.attr,
+       &dev_attr_version_nvdata_persistent.attr,
+       &dev_attr_version_nvdata_default.attr,
+       &dev_attr_board_name.attr,
+       &dev_attr_board_assembly.attr,
+       &dev_attr_board_tracer.attr,
+       &dev_attr_io_delay.attr,
+       &dev_attr_device_delay.attr,
+       &dev_attr_logging_level.attr,
+       &dev_attr_fwfault_debug.attr,
+       &dev_attr_fw_queue_depth.attr,
+       &dev_attr_host_sas_address.attr,
+       &dev_attr_ioc_reset_count.attr,
+       &dev_attr_host_trace_buffer_size.attr,
+       &dev_attr_host_trace_buffer.attr,
+       &dev_attr_host_trace_buffer_enable.attr,
+       &dev_attr_reply_queue_count.attr,
+       &dev_attr_diag_trigger_master.attr,
+       &dev_attr_diag_trigger_event.attr,
+       &dev_attr_diag_trigger_scsi.attr,
+       &dev_attr_diag_trigger_mpi.attr,
+       &dev_attr_drv_support_bitmap.attr,
+       &dev_attr_BRM_status.attr,
+       &dev_attr_enable_sdev_max_qd.attr,
        NULL,
 };
 
+static const struct attribute_group mpt3sas_host_attr_group = {
+       .attrs = mpt3sas_host_attrs
+};
+
+const struct attribute_group *mpt3sas_host_groups[] = {
+       &mpt3sas_host_attr_group,
+       NULL
+};
+
 /* device attributes */
 
 /**
@@ -3976,14 +3985,23 @@ sas_ncq_prio_enable_store(struct device *dev,
 }
 static DEVICE_ATTR_RW(sas_ncq_prio_enable);
 
-struct device_attribute *mpt3sas_dev_attrs[] = {
-       &dev_attr_sas_address,
-       &dev_attr_sas_device_handle,
-       &dev_attr_sas_ncq_prio_supported,
-       &dev_attr_sas_ncq_prio_enable,
+struct attribute *mpt3sas_dev_attrs[] = {
+       &dev_attr_sas_address.attr,
+       &dev_attr_sas_device_handle.attr,
+       &dev_attr_sas_ncq_prio_supported.attr,
+       &dev_attr_sas_ncq_prio_enable.attr,
        NULL,
 };
 
+static const struct attribute_group mpt3sas_dev_attr_group = {
+       .attrs = mpt3sas_dev_attrs
+};
+
+const struct attribute_group *mpt3sas_dev_groups[] = {
+       &mpt3sas_dev_attr_group,
+       NULL
+};
+
 /* file operations table for mpt3ctl device */
 static const struct file_operations ctl_fops = {
        .owner = THIS_MODULE,
index 3946253..344c432 100644 (file)
@@ -11875,8 +11875,8 @@ static struct scsi_host_template mpt2sas_driver_template = {
        .sg_tablesize                   = MPT2SAS_SG_DEPTH,
        .max_sectors                    = 32767,
        .cmd_per_lun                    = 7,
-       .shost_attrs                    = mpt3sas_host_attrs,
-       .sdev_attrs                     = mpt3sas_dev_attrs,
+       .shost_groups                   = mpt3sas_host_groups,
+       .sdev_groups                    = mpt3sas_dev_groups,
        .track_queue_depth              = 1,
        .cmd_size                       = sizeof(struct scsiio_tracker),
 };
@@ -11914,8 +11914,8 @@ static struct scsi_host_template mpt3sas_driver_template = {
        .max_sectors                    = 32767,
        .max_segment_size               = 0xffffffff,
        .cmd_per_lun                    = 7,
-       .shost_attrs                    = mpt3sas_host_attrs,
-       .sdev_attrs                     = mpt3sas_dev_attrs,
+       .shost_groups                   = mpt3sas_host_groups,
+       .sdev_groups                    = mpt3sas_dev_groups,
        .track_queue_depth              = 1,
        .cmd_size                       = sizeof(struct scsiio_tracker),
        .map_queues                     = scsih_map_queues,