Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e3aa6243 authored by Julien Thierry's avatar Julien Thierry Committed by Russell King
Browse files

ARM: 8795/1: spectre-v1.1: use put_user() for __put_user()



When Spectre mitigation is required, __put_user() needs to include
check_uaccess. This is already the case for put_user(), so just make
__put_user() an alias of put_user().

Signed-off-by: default avatarJulien Thierry <julien.thierry@arm.com>
Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
parent 621afc67
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -370,6 +370,14 @@ do { \
	__pu_err;							\
})

#ifdef CONFIG_CPU_SPECTRE
/*
 * When mitigating Spectre variant 1.1, all accessors need to include
 * verification of the address space.
 */
#define __put_user(x, ptr) put_user(x, ptr)

#else
#define __put_user(x, ptr)						\
({									\
	long __pu_err = 0;						\
@@ -377,12 +385,6 @@ do { \
	__pu_err;							\
})

#define __put_user_error(x, ptr, err)					\
({									\
	__put_user_switch((x), (ptr), (err), __put_user_nocheck);	\
	(void) 0;							\
})

#define __put_user_nocheck(x, __pu_ptr, __err, __size)			\
	do {								\
		unsigned long __pu_addr = (unsigned long)__pu_ptr;	\
@@ -462,6 +464,7 @@ do { \
	: "r" (x), "i" (-EFAULT)				\
	: "cc")

#endif /* !CONFIG_CPU_SPECTRE */

#ifdef CONFIG_MMU
extern unsigned long __must_check