Blame view

kernel/linux-imx6_3.14.28/arch/x86/lib/usercopy.c 837 Bytes
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
  /*
   * User address space access functions.
   *
   *  For licencing details see kernel-base/COPYING
   */
  
  #include <linux/highmem.h>
  #include <linux/module.h>
  
  #include <asm/word-at-a-time.h>
  #include <linux/sched.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.
   */
  unsigned long
  copy_from_user_nmi(void *to, const void __user *from, unsigned long n)
  {
  	unsigned long ret;
  
  	if (__range_not_ok(from, n, TASK_SIZE))
  		return 0;
  
  	/*
  	 * Even though this function is typically called from NMI/IRQ context
  	 * disable pagefaults so that its behaviour is consistent even when
  	 * called form other contexts.
  	 */
  	pagefault_disable();
  	ret = __copy_from_user_inatomic(to, from, n);
  	pagefault_enable();
  
  	return ret;
  }
  EXPORT_SYMBOL_GPL(copy_from_user_nmi);