cregit-Linux how code gets into the kernel

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

/* SPDX-License-Identifier: GPL-2.0 */
#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%
Ingo Molnar12.63%116.67%
Linus Torvalds12.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.33%16.67%
Al Viro4816.00%16.67%
Neil Brown3712.33%16.67%
Linus Torvalds (pre-git)299.67%320.00%
Linus Torvalds196.33%213.33%
Andrew Morton175.67%320.00%
H. Peter Anvin62.00%213.33%
Ingo Molnar10.33%16.67%
Greg Kroah-Hartman10.33%16.67%
Total300100.00%15100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.