Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

scsi: bfa: Switch to attribute groups

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-15-bvanassche@acm.org
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

authored by

Bart Van Assche and committed by
Martin K. Petersen
e73af234 ebcbac34

+46 -30
+42 -26
drivers/scsi/bfa/bfad_attr.c
··· 956 956 static DEVICE_ATTR(number_of_discovered_ports, S_IRUGO, 957 957 bfad_im_num_of_discovered_ports_show, NULL); 958 958 959 - struct device_attribute *bfad_im_host_attrs[] = { 960 - &dev_attr_serial_number, 961 - &dev_attr_model, 962 - &dev_attr_model_description, 963 - &dev_attr_node_name, 964 - &dev_attr_symbolic_name, 965 - &dev_attr_hardware_version, 966 - &dev_attr_driver_version, 967 - &dev_attr_option_rom_version, 968 - &dev_attr_firmware_version, 969 - &dev_attr_number_of_ports, 970 - &dev_attr_driver_name, 971 - &dev_attr_number_of_discovered_ports, 959 + static struct attribute *bfad_im_host_attrs[] = { 960 + &dev_attr_serial_number.attr, 961 + &dev_attr_model.attr, 962 + &dev_attr_model_description.attr, 963 + &dev_attr_node_name.attr, 964 + &dev_attr_symbolic_name.attr, 965 + &dev_attr_hardware_version.attr, 966 + &dev_attr_driver_version.attr, 967 + &dev_attr_option_rom_version.attr, 968 + &dev_attr_firmware_version.attr, 969 + &dev_attr_number_of_ports.attr, 970 + &dev_attr_driver_name.attr, 971 + &dev_attr_number_of_discovered_ports.attr, 972 972 NULL, 973 973 }; 974 974 975 - struct device_attribute *bfad_im_vport_attrs[] = { 976 - &dev_attr_serial_number, 977 - &dev_attr_model, 978 - &dev_attr_model_description, 979 - &dev_attr_node_name, 980 - &dev_attr_symbolic_name, 981 - &dev_attr_hardware_version, 982 - &dev_attr_driver_version, 983 - &dev_attr_option_rom_version, 984 - &dev_attr_firmware_version, 985 - &dev_attr_number_of_ports, 986 - &dev_attr_driver_name, 987 - &dev_attr_number_of_discovered_ports, 975 + static const struct attribute_group bfad_im_host_attr_group = { 976 + .attrs = bfad_im_host_attrs 977 + }; 978 + 979 + const struct attribute_group *bfad_im_host_groups[] = { 980 + &bfad_im_host_attr_group, 981 + NULL 982 + }; 983 + 984 + struct attribute *bfad_im_vport_attrs[] = { 985 + &dev_attr_serial_number.attr, 986 + &dev_attr_model.attr, 987 + &dev_attr_model_description.attr, 988 + &dev_attr_node_name.attr, 989 + &dev_attr_symbolic_name.attr, 990 + &dev_attr_hardware_version.attr, 991 + &dev_attr_driver_version.attr, 992 + &dev_attr_option_rom_version.attr, 993 + &dev_attr_firmware_version.attr, 994 + &dev_attr_number_of_ports.attr, 995 + &dev_attr_driver_name.attr, 996 + &dev_attr_number_of_discovered_ports.attr, 988 997 NULL, 989 998 }; 990 999 1000 + static const struct attribute_group bfad_im_vport_attr_group = { 1001 + .attrs = bfad_im_vport_attrs 1002 + }; 991 1003 1004 + const struct attribute_group *bfad_im_vport_groups[] = { 1005 + &bfad_im_vport_attr_group, 1006 + NULL 1007 + };
+2 -2
drivers/scsi/bfa/bfad_im.c
··· 809 809 .this_id = -1, 810 810 .sg_tablesize = BFAD_IO_MAX_SGE, 811 811 .cmd_per_lun = 3, 812 - .shost_attrs = bfad_im_host_attrs, 812 + .shost_groups = bfad_im_host_groups, 813 813 .max_sectors = BFAD_MAX_SECTORS, 814 814 .vendor_id = BFA_PCI_VENDOR_ID_BROCADE, 815 815 }; ··· 831 831 .this_id = -1, 832 832 .sg_tablesize = BFAD_IO_MAX_SGE, 833 833 .cmd_per_lun = 3, 834 - .shost_attrs = bfad_im_vport_attrs, 834 + .shost_groups = bfad_im_vport_groups, 835 835 .max_sectors = BFAD_MAX_SECTORS, 836 836 }; 837 837
+2 -2
drivers/scsi/bfa/bfad_im.h
··· 174 174 extern struct scsi_transport_template *bfad_im_scsi_transport_template; 175 175 extern struct scsi_transport_template *bfad_im_scsi_vport_transport_template; 176 176 177 - extern struct device_attribute *bfad_im_host_attrs[]; 178 - extern struct device_attribute *bfad_im_vport_attrs[]; 177 + extern const struct attribute_group *bfad_im_host_groups[]; 178 + extern const struct attribute_group *bfad_im_vport_groups[]; 179 179 180 180 irqreturn_t bfad_intx(int irq, void *dev_id); 181 181