Como copy_from_user do kernel do Linux funciona internament

Alguém pode me explicar como exatamente a função copy_from_user funciona interna? Ela usa buffers ou existe algum mapeamento de memória feito considerando o fato de que o kernel tem o privilégio de acessar o espaço no usuári