diff options
author | Will Deacon <will@kernel.org> | 2019-08-09 15:39:37 +0100 |
---|---|---|
committer | Will Deacon <will@kernel.org> | 2019-08-09 15:39:37 +0100 |
commit | 9c1cac424c93d2b3122014e07a54b003ddedc168 (patch) | |
tree | ed771235730e7c4c6d5f1b1e2d788ea5a91535de /arch/arm64/include | |
parent | 9ce1263033cd2ad393e2ff0df4a1c4ab4992c9df (diff) |
arm64: mm: Really fix sparse warning in untagged_addr()
untagged_addr() can be called with a '__user' pointer parameter and must
therefore use '__force' casts both when passing this parameter through
to sign_extend64() as a 'u64', but also when casting the 's64' return
value back to the '__user' pointer type.
Signed-off-by: Will Deacon <will@kernel.org>
Diffstat (limited to 'arch/arm64/include')
-rw-r--r-- | arch/arm64/include/asm/memory.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm64/include/asm/memory.h b/arch/arm64/include/asm/memory.h index 46c4c08a80a9..76e0b232a473 100644 --- a/arch/arm64/include/asm/memory.h +++ b/arch/arm64/include/asm/memory.h @@ -201,7 +201,7 @@ extern u64 vabits_user; * pass on to access_ok(), for instance. */ #define untagged_addr(addr) \ - ((__typeof__(addr))sign_extend64((__force u64)(addr), 55)) + ((__force __typeof__(addr))sign_extend64((__force u64)(addr), 55)) #ifdef CONFIG_KASAN_SW_TAGS #define __tag_shifted(tag) ((u64)(tag) << 56) |