__copy_to_user_inatomic — Copy a block of data into user space, with less checking.
unsigned long __copy_to_user_inatomic ( | void __user * to, |
| const void * from, | |
unsigned long n); |
toDestination address, in user space.
fromSource address, in kernel space.
nNumber of bytes to copy.
Copy data from kernel space to user space. Caller must check
the specified block with access_ok before calling this function.
The caller should also make sure he pins the user space address
so that we don't result in page fault and sleep.
Here we special-case 1, 2 and 4-byte copy_*_user invocations. On a fault we return the initial request size (1, 2 or 4), as copy_*_user should do. If a store crosses a page boundary and gets a fault, the x86 will not write anything, so this is accurate.