cregit-Linux how code gets into the kernel

Release 4.13 arch/x86/include/asm/uaccess_32.h

#ifndef _ASM_X86_UACCESS_32_H

#define _ASM_X86_UACCESS_32_H

/*
 * User space memory access functions
 */
#include <linux/string.h>
#include <asm/asm.h>
#include <asm/page.h>

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


static __always_inline unsigned long __must_check raw_copy_to_user(void __user *to, const void *from, unsigned long n) { return __copy_user_ll((__force void *)to, from, n); }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)1744.74%116.67%
Andrew Morton1334.21%233.33%
Al Viro615.79%116.67%
Linus Torvalds12.63%116.67%
Ingo Molnar12.63%116.67%
Total38100.00%6100.00%


static __always_inline unsigned long raw_copy_from_user(void *to, const void __user *from, unsigned long n) { if (__builtin_constant_p(n)) { unsigned long ret; switch (n) { case 1: ret = 0; __uaccess_begin(); __get_user_asm_nozero(*(u8 *)to, from, ret, "b", "b", "=q", 1); __uaccess_end(); return ret; case 2: ret = 0; __uaccess_begin(); __get_user_asm_nozero(*(u16 *)to, from, ret, "w", "w", "=r", 2); __uaccess_end(); return ret; case 4: ret = 0; __uaccess_begin(); __get_user_asm_nozero(*(u32 *)to, from, ret, "l", "k", "=r", 4); __uaccess_end(); return ret; } } return __copy_user_ll(to, (__force const void *)from, n); }

Contributors

PersonTokensPropCommitsCommitProp
Hiro Yoshioka11265.50%133.33%
Al Viro4123.98%133.33%
Linus Torvalds1810.53%133.33%
Total171100.00%3100.00%


static __always_inline unsigned long __copy_from_user_inatomic_nocache(void *to, const void __user *from, unsigned long n) { return __copy_from_user_ll_nocache_nozero(to, from, n); }

Contributors

PersonTokensPropCommitsCommitProp
Hiro Yoshioka3093.75%150.00%
Neil Brown26.25%150.00%
Total32100.00%2100.00%

#endif /* _ASM_X86_UACCESS_32_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
Hiro Yoshioka14247.49%17.14%
Al Viro4816.05%17.14%
Neil Brown3712.37%17.14%
Linus Torvalds (pre-git)299.70%321.43%
Linus Torvalds196.35%214.29%
Andrew Morton175.69%321.43%
H. Peter Anvin62.01%214.29%
Ingo Molnar10.33%17.14%
Total299100.00%14100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.