arm64: Explicitly mark 64-bit constant as unsigned long
diff mbox series

Message ID 20181117015456.101222-1-olof@lixom.net
State New
Headers show
Series
  • arm64: Explicitly mark 64-bit constant as unsigned long
Related show

Commit Message

Olof Johansson Nov. 17, 2018, 1:54 a.m. UTC
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(-)

Comments

Will Deacon Nov. 17, 2018, 2:26 a.m. UTC | #1
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
Olof Johansson Nov. 17, 2018, 2:54 a.m. UTC | #2
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
David Laight Nov. 19, 2018, 12:07 p.m. UTC | #3
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)

Patch
diff mbox series

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