Skip to content

Commit e35c936

Browse files
suryasaimadhuwsakernel
authored andcommitted
i2c: ismt: Fix undefined behavior due to shift overflowing the constant
Fix: drivers/i2c/busses/i2c-ismt.c: In function ‘ismt_hw_init’: drivers/i2c/busses/i2c-ismt.c:770:2: error: case label does not reduce to an integer constant case ISMT_SPGT_SPD_400K: ^~~~ drivers/i2c/busses/i2c-ismt.c:773:2: error: case label does not reduce to an integer constant case ISMT_SPGT_SPD_1M: ^~~~ See https://lore.kernel.org/r/YkwQ6%2BtIH8GQpuct@zn.tnic for the gory details as to why it triggers with older gccs only. Signed-off-by: Borislav Petkov <bp@suse.de> Reviewed-by: Seth Heasley <seth.heasley@intel.com> Signed-off-by: Wolfram Sang <wsa@kernel.org>
1 parent aef80e2 commit e35c936

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

drivers/i2c/busses/i2c-ismt.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,8 @@
145145
#define ISMT_SPGT_SPD_MASK 0xc0000000 /* SMBus Speed mask */
146146
#define ISMT_SPGT_SPD_80K 0x00 /* 80 kHz */
147147
#define ISMT_SPGT_SPD_100K (0x1 << 30) /* 100 kHz */
148-
#define ISMT_SPGT_SPD_400K (0x2 << 30) /* 400 kHz */
149-
#define ISMT_SPGT_SPD_1M (0x3 << 30) /* 1 MHz */
148+
#define ISMT_SPGT_SPD_400K (0x2U << 30) /* 400 kHz */
149+
#define ISMT_SPGT_SPD_1M (0x3U << 30) /* 1 MHz */
150150

151151

152152
/* MSI Control Register (MSICTL) bit definitions */

0 commit comments

Comments
 (0)