Message ID | 20181117015456.101222-1-olof@lixom.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm64: Explicitly mark 64-bit constant as unsigned long | expand |
Hi Olof, On Fri, Nov 16, 2018 at 05:54:56PM -0800, Olof Johansson wrote: > Makes sparse happy. Before: > > arch/arm64/include/asm/sysreg.h:471:42: warning: constant 0xffffffffffffffff is so big it is unsigned long > arch/arm64/include/asm/sysreg.h:512:42: warning: constant 0xffffffffffffffff is so big it is unsigned long > > Signed-off-by: Olof Johansson <olof@lixom.net> > --- > arch/arm64/include/asm/sysreg.h | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) The warning is bogus imo, but since it's harmless to fix it then we can do that. However, you've been beaten by: http://lists.infradead.org/pipermail/linux-arm-kernel/2018-November/613179.html Will
On Fri, Nov 16, 2018 at 6:27 PM Will Deacon <will.deacon@arm.com> wrote: > > Hi Olof, > > On Fri, Nov 16, 2018 at 05:54:56PM -0800, Olof Johansson wrote: > > Makes sparse happy. Before: > > > > arch/arm64/include/asm/sysreg.h:471:42: warning: constant 0xffffffffffffffff is so big it is unsigned long > > arch/arm64/include/asm/sysreg.h:512:42: warning: constant 0xffffffffffffffff is so big it is unsigned long > > > > Signed-off-by: Olof Johansson <olof@lixom.net> > > --- > > arch/arm64/include/asm/sysreg.h | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > The warning is bogus imo, but since it's harmless to fix it then we can do > that. However, you've been beaten by: > > http://lists.infradead.org/pipermail/linux-arm-kernel/2018-November/613179.html Yeah, mostly bogus but still useful to silence warnings so you notice new ones. Overlooked the duplicate, happy to ack that one instead. -Olof
From: Olof Johansson > Sent: 17 November 2018 01:55 ... > -#if (SCTLR_EL2_SET ^ SCTLR_EL2_CLEAR) != 0xffffffffffffffff > +#if (SCTLR_EL2_SET ^ SCTLR_EL2_CLEAR) != 0xfffffffffffffffful > #error "Inconsistent SCTLR_EL2 set/clear bits" > #endif Wouldn't this be clearer if written: #if SCTLR_EL2_SET != ~SCTLR_EL2_CLEAR which then begs the question of why there are separate 'set' and 'clear' masks. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)
diff --git a/arch/arm64/include/asm/sysreg.h b/arch/arm64/include/asm/sysreg.h index 0c909c4a932ff..981892b67b8f6 100644 --- a/arch/arm64/include/asm/sysreg.h +++ b/arch/arm64/include/asm/sysreg.h @@ -468,7 +468,7 @@ SCTLR_ELx_SA | SCTLR_ELx_I | SCTLR_ELx_WXN | \ SCTLR_ELx_DSSBS | ENDIAN_CLEAR_EL2 | SCTLR_EL2_RES0) -#if (SCTLR_EL2_SET ^ SCTLR_EL2_CLEAR) != 0xffffffffffffffff +#if (SCTLR_EL2_SET ^ SCTLR_EL2_CLEAR) != 0xfffffffffffffffful #error "Inconsistent SCTLR_EL2 set/clear bits" #endif @@ -509,7 +509,7 @@ SCTLR_EL1_UMA | SCTLR_ELx_WXN | ENDIAN_CLEAR_EL1 |\ SCTLR_ELx_DSSBS | SCTLR_EL1_NTWI | SCTLR_EL1_RES0) -#if (SCTLR_EL1_SET ^ SCTLR_EL1_CLEAR) != 0xffffffffffffffff +#if (SCTLR_EL1_SET ^ SCTLR_EL1_CLEAR) != 0xfffffffffffffffful #error "Inconsistent SCTLR_EL1 set/clear bits" #endif
Makes sparse happy. Before: arch/arm64/include/asm/sysreg.h:471:42: warning: constant 0xffffffffffffffff is so big it is unsigned long arch/arm64/include/asm/sysreg.h:512:42: warning: constant 0xffffffffffffffff is so big it is unsigned long Signed-off-by: Olof Johansson <olof@lixom.net> --- arch/arm64/include/asm/sysreg.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)