drivers/scsi/pm8001/pm8001_hwi.h | 3 ++- drivers/scsi/pm8001/pm80xx_hwi.h | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-)
Remove unused field residual_count in a couple of structures,
and with this, fix the following -Wflex-array-member-not-at-end
warnings:
drivers/scsi/pm8001/pm8001_hwi.h:342:33: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end]
drivers/scsi/pm8001/pm80xx_hwi.h:561:32: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end]
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
Changes in v2:
- Remove unused field residual_count. (James)
v1:
- Link: https://lore.kernel.org/linux-hardening/aLiMoNzLs1_bu4eJ@kspp/
drivers/scsi/pm8001/pm8001_hwi.h | 3 ++-
drivers/scsi/pm8001/pm80xx_hwi.h | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/scsi/pm8001/pm8001_hwi.h b/drivers/scsi/pm8001/pm8001_hwi.h
index fc2127dcb58d..170853dbf952 100644
--- a/drivers/scsi/pm8001/pm8001_hwi.h
+++ b/drivers/scsi/pm8001/pm8001_hwi.h
@@ -339,8 +339,9 @@ struct ssp_completion_resp {
__le32 status;
__le32 param;
__le32 ssptag_rescv_rescpad;
+
+ /* Must be last --ends in a flexible-array member. */
struct ssp_response_iu ssp_resp_iu;
- __le32 residual_count;
} __attribute__((packed, aligned(4)));
diff --git a/drivers/scsi/pm8001/pm80xx_hwi.h b/drivers/scsi/pm8001/pm80xx_hwi.h
index eb8fd37b2066..b13d42701b1b 100644
--- a/drivers/scsi/pm8001/pm80xx_hwi.h
+++ b/drivers/scsi/pm8001/pm80xx_hwi.h
@@ -558,8 +558,9 @@ struct ssp_completion_resp {
__le32 status;
__le32 param;
__le32 ssptag_rescv_rescpad;
+
+ /* Must be last --ends in a flexible-array member. */
struct ssp_response_iu ssp_resp_iu;
- __le32 residual_count;
} __attribute__((packed, aligned(4)));
#define SSP_RESCV_BIT 0x00010000
--
2.43.0
On 04/09/2025 15:54, Gustavo A. R. Silva wrote: > Remove unused field residual_count in a couple of structures, > and with this, fix the following -Wflex-array-member-not-at-end > warnings: > > drivers/scsi/pm8001/pm8001_hwi.h:342:33: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end] > drivers/scsi/pm8001/pm80xx_hwi.h:561:32: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end] > > Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org> Personally I think that it would be better to comment-out the residual_count member, so that future developers can know about this field and why it is not there. Anyway, Reviewed-by: John Garry <john.g.garry@oracle.com> > --- > Changes in v2: > - Remove unused field residual_count. (James) > > v1: > - Link: https://urldefense.com/v3/__https://lore.kernel.org/linux-hardening/aLiMoNzLs1_bu4eJ@kspp/__;!!ACWV5N9M2RV99hQ!OLkXLNymYqQz8gxMAEHXcks7WQ22V0FhWPT1wD58j2Zoq0rgh_0zDnxZnBV0wK-FEGTDmnSbCMbqSVJGScIysEk$ > > drivers/scsi/pm8001/pm8001_hwi.h | 3 ++- > drivers/scsi/pm8001/pm80xx_hwi.h | 3 ++- > 2 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/scsi/pm8001/pm8001_hwi.h b/drivers/scsi/pm8001/pm8001_hwi.h > index fc2127dcb58d..170853dbf952 100644 > --- a/drivers/scsi/pm8001/pm8001_hwi.h > +++ b/drivers/scsi/pm8001/pm8001_hwi.h > @@ -339,8 +339,9 @@ struct ssp_completion_resp { > __le32 status; > __le32 param; > __le32 ssptag_rescv_rescpad; > + > + /* Must be last --ends in a flexible-array member. */ > struct ssp_response_iu ssp_resp_iu; > - __le32 residual_count; > } __attribute__((packed, aligned(4))); > > > diff --git a/drivers/scsi/pm8001/pm80xx_hwi.h b/drivers/scsi/pm8001/pm80xx_hwi.h > index eb8fd37b2066..b13d42701b1b 100644 > --- a/drivers/scsi/pm8001/pm80xx_hwi.h > +++ b/drivers/scsi/pm8001/pm80xx_hwi.h > @@ -558,8 +558,9 @@ struct ssp_completion_resp { > __le32 status; > __le32 param; > __le32 ssptag_rescv_rescpad; > + > + /* Must be last --ends in a flexible-array member. */ > struct ssp_response_iu ssp_resp_iu; > - __le32 residual_count; > } __attribute__((packed, aligned(4))); > > #define SSP_RESCV_BIT 0x00010000
On 9/5/25 09:05, John Garry wrote: > On 04/09/2025 15:54, Gustavo A. R. Silva wrote: >> Remove unused field residual_count in a couple of structures, >> and with this, fix the following -Wflex-array-member-not-at-end >> warnings: >> >> drivers/scsi/pm8001/pm8001_hwi.h:342:33: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member- >> not-at-end] >> drivers/scsi/pm8001/pm80xx_hwi.h:561:32: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member- >> not-at-end] >> >> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org> > > Personally I think that it would be better to comment-out the residual_count member, so that future developers can know about this field and why it is not there. I agree. I'll send v3. > > Anyway, > > Reviewed-by: John Garry <john.g.garry@oracle.com> Thanks! -Gustavo
On Thu, Sep 4, 2025 at 4:54 PM Gustavo A. R. Silva <gustavoars@kernel.org> wrote: > > Remove unused field residual_count in a couple of structures, > and with this, fix the following -Wflex-array-member-not-at-end > warnings: > > drivers/scsi/pm8001/pm8001_hwi.h:342:33: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end] > drivers/scsi/pm8001/pm80xx_hwi.h:561:32: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end] > > Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org> oh, indeed, v1 is wrong, and v2 is right fix. Reviewed-by: Jack Wang <jinpu.wang@ionos.com> > --- > Changes in v2: > - Remove unused field residual_count. (James) > > v1: > - Link: https://lore.kernel.org/linux-hardening/aLiMoNzLs1_bu4eJ@kspp/ > > drivers/scsi/pm8001/pm8001_hwi.h | 3 ++- > drivers/scsi/pm8001/pm80xx_hwi.h | 3 ++- > 2 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/scsi/pm8001/pm8001_hwi.h b/drivers/scsi/pm8001/pm8001_hwi.h > index fc2127dcb58d..170853dbf952 100644 > --- a/drivers/scsi/pm8001/pm8001_hwi.h > +++ b/drivers/scsi/pm8001/pm8001_hwi.h > @@ -339,8 +339,9 @@ struct ssp_completion_resp { > __le32 status; > __le32 param; > __le32 ssptag_rescv_rescpad; > + > + /* Must be last --ends in a flexible-array member. */ > struct ssp_response_iu ssp_resp_iu; > - __le32 residual_count; > } __attribute__((packed, aligned(4))); > > > diff --git a/drivers/scsi/pm8001/pm80xx_hwi.h b/drivers/scsi/pm8001/pm80xx_hwi.h > index eb8fd37b2066..b13d42701b1b 100644 > --- a/drivers/scsi/pm8001/pm80xx_hwi.h > +++ b/drivers/scsi/pm8001/pm80xx_hwi.h > @@ -558,8 +558,9 @@ struct ssp_completion_resp { > __le32 status; > __le32 param; > __le32 ssptag_rescv_rescpad; > + > + /* Must be last --ends in a flexible-array member. */ > struct ssp_response_iu ssp_resp_iu; > - __le32 residual_count; > } __attribute__((packed, aligned(4))); > > #define SSP_RESCV_BIT 0x00010000 > -- > 2.43.0 >
© 2016 - 2025 Red Hat, Inc.