Skip to content

Commit

Permalink
scsi: message: fusion: struct _CONFIG_PAGE_IOC_2: Replace 1-element a…
Browse files Browse the repository at this point in the history
…rray with flexible array

Replace the deprecated[1] use of a 1-element array in struct
_CONFIG_PAGE_IOC_2 with a modern flexible array.

Additionally add __counted_by annotation since RaidVolume is only ever
accessed from loops controlled by NumActiveVolumes:

lsi/mpi_cnfg.h:    CONFIG_PAGE_IOC_2_RAID_VOL  RaidVolume[] __counted_by(NumActiveVolumes); /* 0Ch */
mptbase.c:      for (i = 0; i < pIoc2->NumActiveVolumes ; i++)
mptbase.c:                  pIoc2->RaidVolume[i].VolumeBus,
mptbase.c:                  pIoc2->RaidVolume[i].VolumeID);
mptsas.c:               for (i = 0; i < ioc->raid_data.pIocPg2->NumActiveVolumes; i++) {
mptsas.c:                                       RaidVolume[i].VolumeID) {
mptsas.c:                                       RaidVolume[i].VolumeBus;
mptsas.c:       for (i = 0; i < ioc->raid_data.pIocPg2->NumActiveVolumes; i++) {
mptsas.c:                   ioc->raid_data.pIocPg2->RaidVolume[i].VolumeID, 0);
mptsas.c:                   ioc->raid_data.pIocPg2->RaidVolume[i].VolumeID);
mptsas.c:                   ioc->raid_data.pIocPg2->RaidVolume[i].VolumeID, 0);
mptsas.c:               for (i = 0; i < ioc->raid_data.pIocPg2->NumActiveVolumes; i++) {
mptsas.c:                       if (ioc->raid_data.pIocPg2->RaidVolume[i].VolumeID ==
mptsas.c:       for (i = 0; i < ioc->raid_data.pIocPg2->NumActiveVolumes; i++)
mptsas.c:               if (ioc->raid_data.pIocPg2->RaidVolume[i].VolumeID == id)
mptspi.c:       for (i=0; i < ioc->raid_data.pIocPg2->NumActiveVolumes; i++) {
mptspi.c:               if (ioc->raid_data.pIocPg2->RaidVolume[i].VolumeID == id) {

No binary differences are present after this conversion.

Link: KSPP/linux#79 [1]
Signed-off-by: Kees Cook <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Reviewed-by: Gustavo A. R. Silva <[email protected]>
Signed-off-by: Martin K. Petersen <[email protected]>
  • Loading branch information
kees authored and martinkpetersen committed Aug 3, 2024
1 parent dc8932f commit de80fe2
Showing 1 changed file with 1 addition and 9 deletions.
10 changes: 1 addition & 9 deletions drivers/message/fusion/lsi/mpi_cnfg.h
Original file line number Diff line number Diff line change
Expand Up @@ -1018,14 +1018,6 @@ typedef struct _CONFIG_PAGE_IOC_2_RAID_VOL

#define MPI_IOCPAGE2_FLAG_VOLUME_INACTIVE (0x08)

/*
* Host code (drivers, BIOS, utilities, etc.) should leave this define set to
* one and check Header.PageLength at runtime.
*/
#ifndef MPI_IOC_PAGE_2_RAID_VOLUME_MAX
#define MPI_IOC_PAGE_2_RAID_VOLUME_MAX (1)
#endif

typedef struct _CONFIG_PAGE_IOC_2
{
CONFIG_PAGE_HEADER Header; /* 00h */
Expand All @@ -1034,7 +1026,7 @@ typedef struct _CONFIG_PAGE_IOC_2
U8 MaxVolumes; /* 09h */
U8 NumActivePhysDisks; /* 0Ah */
U8 MaxPhysDisks; /* 0Bh */
CONFIG_PAGE_IOC_2_RAID_VOL RaidVolume[MPI_IOC_PAGE_2_RAID_VOLUME_MAX];/* 0Ch */
CONFIG_PAGE_IOC_2_RAID_VOL RaidVolume[] __counted_by(NumActiveVolumes); /* 0Ch */
} CONFIG_PAGE_IOC_2, MPI_POINTER PTR_CONFIG_PAGE_IOC_2,
IOCPage2_t, MPI_POINTER pIOCPage2_t;

Expand Down

0 comments on commit de80fe2

Please sign in to comment.