diff options
Diffstat (limited to 'arch/x86/lib/usercopy.c')
| -rw-r--r-- | arch/x86/lib/usercopy.c | 5 | 
1 files changed, 5 insertions, 0 deletions
| diff --git a/arch/x86/lib/usercopy.c b/arch/x86/lib/usercopy.c index c8c6ad0d58b8..3f435d7fca5e 100644 --- a/arch/x86/lib/usercopy.c +++ b/arch/x86/lib/usercopy.c @@ -7,6 +7,8 @@  #include <linux/uaccess.h>  #include <linux/export.h> +#include <asm/tlbflush.h> +  /*   * We rely on the nested NMI work to allow atomic faults from the NMI path; the   * nested NMI paths are careful to preserve CR2. @@ -19,6 +21,9 @@ copy_from_user_nmi(void *to, const void __user *from, unsigned long n)  	if (__range_not_ok(from, n, TASK_SIZE))  		return n; +	if (!nmi_uaccess_okay()) +		return n; +  	/*  	 * Even though this function is typically called from NMI/IRQ context  	 * disable pagefaults so that its behaviour is consistent even when |