arm64: memory: Add missing brackets to untagged_addr() macro
authorWill Deacon <will@kernel.org>
Wed, 19 Feb 2020 10:19:13 +0000 (10:19 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 28 Feb 2020 16:22:18 +0000 (17:22 +0100)
commit d0022c0ef29b78bcbe8a5c5894bd2307143afce1 upstream.

Add brackets around the evaluation of the 'addr' parameter to the
untagged_addr() macro so that the cast to 'u64' applies to the result
of the expression.

Cc: <stable@vger.kernel.org>
Fixes: 597399d0cb91 ("arm64: tags: Preserve tags for addresses translated via TTBR1")
Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/arm64/include/asm/memory.h

index c23c473606647521673ee7b2274a249d1688f125..08df42e4db96ce79ca729500375e122622951226 100644 (file)
@@ -219,7 +219,7 @@ static inline unsigned long kaslr_offset(void)
        ((__force __typeof__(addr))sign_extend64((__force u64)(addr), 55))
 
 #define untagged_addr(addr)    ({                                      \
-       u64 __addr = (__force u64)addr;                                 \
+       u64 __addr = (__force u64)(addr);                                       \
        __addr &= __untagged_addr(__addr);                              \
        (__force __typeof__(addr))__addr;                               \
 })