diff mbox series

scsi: stex: Fix gcc 13 warnings

Message ID 20230529195034.3077-1-bvanassche@acm.org
State New
Headers show
Series scsi: stex: Fix gcc 13 warnings | expand

Commit Message

Bart Van Assche May 29, 2023, 7:50 p.m. UTC
gcc 13 may assign another type to enumeration constants than gcc 12. Split
the large enum at the top of source file stex.c such that the type of the
constants used in time expressions is changed back to the same type chosen
by gcc 12. This patch suppresses compiler warnings like this one:

In file included from ./include/linux/bitops.h:7,
                 from ./include/linux/kernel.h:22,
                 from drivers/scsi/stex.c:13:
drivers/scsi/stex.c: In function ‘stex_common_handshake’:
./include/linux/typecheck.h:12:25: error: comparison of distinct pointer types lacks a cast [-Werror]
   12 |         (void)(&__dummy == &__dummy2); \
      |                         ^~
./include/linux/jiffies.h:106:10: note: in expansion of macro ‘typecheck’
  106 |          typecheck(unsigned long, b) && \
      |          ^~~~~~~~~
drivers/scsi/stex.c:1035:29: note: in expansion of macro ‘time_after’
 1035 |                         if (time_after(jiffies, before + MU_MAX_DELAY * HZ)) {
      |                             ^~~~~~~~~~

See also https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107405.

Cc: stable@vger.kernel.org
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Tested-by: Randy Dunlap <rdunlap@infradead.org> # build-tested
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
 drivers/scsi/stex.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Martin K. Petersen June 1, 2023, 12:43 a.m. UTC | #1
On Mon, 29 May 2023 12:50:34 -0700, Bart Van Assche wrote:

> gcc 13 may assign another type to enumeration constants than gcc 12. Split
> the large enum at the top of source file stex.c such that the type of the
> constants used in time expressions is changed back to the same type chosen
> by gcc 12. This patch suppresses compiler warnings like this one:
> 
> In file included from ./include/linux/bitops.h:7,
>                  from ./include/linux/kernel.h:22,
>                  from drivers/scsi/stex.c:13:
> drivers/scsi/stex.c: In function ‘stex_common_handshake’:
> ./include/linux/typecheck.h:12:25: error: comparison of distinct pointer types lacks a cast [-Werror]
>    12 |         (void)(&__dummy == &__dummy2); \
>       |                         ^~
> ./include/linux/jiffies.h:106:10: note: in expansion of macro ‘typecheck’
>   106 |          typecheck(unsigned long, b) && \
>       |          ^~~~~~~~~
> drivers/scsi/stex.c:1035:29: note: in expansion of macro ‘time_after’
>  1035 |                         if (time_after(jiffies, before + MU_MAX_DELAY * HZ)) {
>       |                             ^~~~~~~~~~
> 
> [...]

Applied to 6.4/scsi-fixes, thanks!

[1/1] scsi: stex: Fix gcc 13 warnings
      https://git.kernel.org/mkp/scsi/c/6d074ce23177
diff mbox series

Patch

diff --git a/drivers/scsi/stex.c b/drivers/scsi/stex.c
index 5b230e149c3d..8ffb75be99bc 100644
--- a/drivers/scsi/stex.c
+++ b/drivers/scsi/stex.c
@@ -109,7 +109,9 @@  enum {
 	TASK_ATTRIBUTE_HEADOFQUEUE		= 0x1,
 	TASK_ATTRIBUTE_ORDERED			= 0x2,
 	TASK_ATTRIBUTE_ACA			= 0x4,
+};
 
+enum {
 	SS_STS_NORMAL				= 0x80000000,
 	SS_STS_DONE				= 0x40000000,
 	SS_STS_HANDSHAKE			= 0x20000000,
@@ -121,7 +123,9 @@  enum {
 	SS_I2H_REQUEST_RESET			= 0x2000,
 
 	SS_MU_OPERATIONAL			= 0x80000000,
+};
 
+enum {
 	STEX_CDB_LENGTH				= 16,
 	STATUS_VAR_LEN				= 128,