Commit 9c1cac42 authored by Will Deacon's avatar Will Deacon
Browse files

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: default avatarWill Deacon <will@kernel.org>
parent 9ce12630
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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)