uaccess.h (db68ce10c4f0a27c1ff9fa0e789e5c41f8c4ea63) uaccess.h (0f9b38cd79d528c1e19693899d989521778cc245)
1/*
2 * arch/arm/include/asm/uaccess.h
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8#ifndef _ASMARM_UACCESS_H

--- 10 unchanged lines hidden (view full) ---

19
20#ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
21#include <asm-generic/uaccess-unaligned.h>
22#else
23#define __get_user_unaligned __get_user
24#define __put_user_unaligned __put_user
25#endif
26
1/*
2 * arch/arm/include/asm/uaccess.h
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8#ifndef _ASMARM_UACCESS_H

--- 10 unchanged lines hidden (view full) ---

19
20#ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
21#include <asm-generic/uaccess-unaligned.h>
22#else
23#define __get_user_unaligned __get_user
24#define __put_user_unaligned __put_user
25#endif
26
27/*
28 * The exception table consists of pairs of addresses: the first is the
29 * address of an instruction that is allowed to fault, and the second is
30 * the address at which the program should continue. No registers are
31 * modified, so it is entirely up to the continuation code to figure out
32 * what to do.
33 *
34 * All the routines below use bits of fixup code that are out of line
35 * with the main instruction path. This means when everything is well,
36 * we don't even have to jump over them. Further, they do not intrude
37 * on our cache or tlb entries.
38 */
27#include <asm/extable.h>
39
28
40struct exception_table_entry
41{
42 unsigned long insn, fixup;
43};
44
45extern int fixup_exception(struct pt_regs *regs);
46
47/*
48 * These two functions allow hooking accesses to userspace to increase
49 * system integrity by ensuring that the kernel can not inadvertantly
50 * perform such accesses (eg, via list poison values) which could then
51 * be exploited for priviledge escalation.
52 */
53static inline unsigned int uaccess_save_and_enable(void)
54{

--- 528 unchanged lines hidden ---
29/*
30 * These two functions allow hooking accesses to userspace to increase
31 * system integrity by ensuring that the kernel can not inadvertantly
32 * perform such accesses (eg, via list poison values) which could then
33 * be exploited for priviledge escalation.
34 */
35static inline unsigned int uaccess_save_and_enable(void)
36{

--- 528 unchanged lines hidden ---