Skip to content

Commit

Permalink
add asm-generic/extable.h
Browse files Browse the repository at this point in the history
... and make the users of generic uaccess.h use that.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
  • Loading branch information
Al Viro committed Mar 28, 2017
1 parent 444f02c commit aaa2e7a
Show file tree
Hide file tree
Showing 10 changed files with 34 additions and 22 deletions.
1 change: 1 addition & 0 deletions arch/arc/include/asm/Kbuild
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ generic-y += device.h
generic-y += div64.h
generic-y += emergency-restart.h
generic-y += errno.h
generic-y += extable.h
generic-y += fb.h
generic-y += fcntl.h
generic-y += ftrace.h
Expand Down
2 changes: 0 additions & 2 deletions arch/arc/include/asm/uaccess.h
Original file line number Diff line number Diff line change
Expand Up @@ -750,6 +750,4 @@ extern long arc_strnlen_user_noinline(const char __user *src, long n);

#include <asm-generic/uaccess.h>

extern int fixup_exception(struct pt_regs *regs);

#endif
1 change: 1 addition & 0 deletions arch/c6x/include/asm/Kbuild
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ generic-y += dma.h
generic-y += emergency-restart.h
generic-y += errno.h
generic-y += exec.h
generic-y += extable.h
generic-y += fb.h
generic-y += fcntl.h
generic-y += futex.h
Expand Down
1 change: 1 addition & 0 deletions arch/h8300/include/asm/Kbuild
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ generic-y += dma.h
generic-y += emergency-restart.h
generic-y += errno.h
generic-y += exec.h
generic-y += extable.h
generic-y += fb.h
generic-y += fcntl.h
generic-y += ftrace.h
Expand Down
1 change: 1 addition & 0 deletions arch/hexagon/include/asm/Kbuild
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ generic-y += device.h
generic-y += div64.h
generic-y += emergency-restart.h
generic-y += errno.h
generic-y += extable.h
generic-y += fb.h
generic-y += fcntl.h
generic-y += ftrace.h
Expand Down
1 change: 1 addition & 0 deletions arch/um/include/asm/Kbuild
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ generic-y += delay.h
generic-y += device.h
generic-y += emergency-restart.h
generic-y += exec.h
generic-y += extable.h
generic-y += ftrace.h
generic-y += futex.h
generic-y += hardirq.h
Expand Down
1 change: 1 addition & 0 deletions arch/unicore32/include/asm/Kbuild
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ generic-y += div64.h
generic-y += emergency-restart.h
generic-y += errno.h
generic-y += exec.h
generic-y += extable.h
generic-y += fb.h
generic-y += fcntl.h
generic-y += ftrace.h
Expand Down
2 changes: 0 additions & 2 deletions arch/unicore32/include/asm/uaccess.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,4 @@ __strnlen_user(const char __user *s, long n);

#include <asm-generic/uaccess.h>

extern int fixup_exception(struct pt_regs *regs);

#endif /* __UNICORE_UACCESS_H__ */
26 changes: 26 additions & 0 deletions include/asm-generic/extable.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#ifndef __ASM_GENERIC_EXTABLE_H
#define __ASM_GENERIC_EXTABLE_H

/*
* The exception table consists of pairs of addresses: the first is the
* address of an instruction that is allowed to fault, and the second is
* the address at which the program should continue. No registers are
* modified, so it is entirely up to the continuation code to figure out
* what to do.
*
* All the routines below use bits of fixup code that are out of line
* with the main instruction path. This means when everything is well,
* we don't even have to jump over them. Further, they do not intrude
* on our cache or tlb entries.
*/

struct exception_table_entry
{
unsigned long insn, fixup;
};


struct pt_regs;
extern int fixup_exception(struct pt_regs *regs);

#endif
20 changes: 2 additions & 18 deletions include/asm-generic/uaccess.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,24 +47,6 @@ static inline int __access_ok(unsigned long addr, unsigned long size)
}
#endif

/*
* The exception table consists of pairs of addresses: the first is the
* address of an instruction that is allowed to fault, and the second is
* the address at which the program should continue. No registers are
* modified, so it is entirely up to the continuation code to figure out
* what to do.
*
* All the routines below use bits of fixup code that are out of line
* with the main instruction path. This means when everything is well,
* we don't even have to jump over them. Further, they do not intrude
* on our cache or tlb entries.
*/

struct exception_table_entry
{
unsigned long insn, fixup;
};

/*
* architectures with an MMU should override these two
*/
Expand Down Expand Up @@ -344,4 +326,6 @@ clear_user(void __user *to, unsigned long n)
return __clear_user(to, n);
}

#include <asm/extable.h>

#endif /* __ASM_GENERIC_UACCESS_H */

0 comments on commit aaa2e7a

Please sign in to comment.