__COPY_TO_USER_INATO

Section: Memory Management in Linux (9)
Updated: February 2011
Index Return to Main Contents
 

NAME

__copy_to_user_inatomic - Copy a block of data into user space, with less checking.  

SYNOPSIS

unsigned long __must_check __copy_to_user_inatomic(void __user * to, const void * from, unsigned long n);
 

ARGUMENTS

to

Destination address, in user space.

from

Source address, in kernel space.

n

Number of bytes to copy.
 

CONTEXT

User context only.  

DESCRIPTION

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.  

COPYRIGHT