diff options
author | Christoph Hellwig <hch@lst.de> | 2019-06-13 03:08:59 -0400 |
---|---|---|
committer | Greg Ungerer <gerg@kernel.org> | 2019-06-23 19:16:47 -0400 |
commit | 7a8998c9d830b59626e049a827678ba444fcf8e2 (patch) | |
tree | e49c18fba9af2e182f1675ebb8025dcbb1277da6 /arch/m68k | |
parent | cf9a566c2c06ac34425c4faf6d32ac55ddbeea7a (diff) |
binfmt_flat: provide an asm-generic/flat.h
This file implements the flat get/put reloc helpers for architectures
that do not need to overload the relocs by simply using get_user/put_user.
Note that many nommu architectures currently use {get,put}_unaligned, which
looks a little bogus and should probably later be switched over to this
version as well.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Vladimir Murzin <vladimir.murzin@arm.com>
Signed-off-by: Greg Ungerer <gerg@linux-m68k.org>
Diffstat (limited to 'arch/m68k')
-rw-r--r-- | arch/m68k/include/asm/flat.h | 21 |
1 files changed, 1 insertions, 20 deletions
diff --git a/arch/m68k/include/asm/flat.h b/arch/m68k/include/asm/flat.h index d7102fcd43eb..46379e08cdd6 100644 --- a/arch/m68k/include/asm/flat.h +++ b/arch/m68k/include/asm/flat.h | |||
@@ -6,26 +6,7 @@ | |||
6 | #ifndef __M68KNOMMU_FLAT_H__ | 6 | #ifndef __M68KNOMMU_FLAT_H__ |
7 | #define __M68KNOMMU_FLAT_H__ | 7 | #define __M68KNOMMU_FLAT_H__ |
8 | 8 | ||
9 | #include <linux/uaccess.h> | 9 | #include <asm-generic/flat.h> |
10 | |||
11 | static inline int flat_get_addr_from_rp(u32 __user *rp, u32 relval, u32 flags, | ||
12 | u32 *addr, u32 *persistent) | ||
13 | { | ||
14 | #ifdef CONFIG_CPU_HAS_NO_UNALIGNED | ||
15 | return copy_from_user(addr, rp, 4) ? -EFAULT : 0; | ||
16 | #else | ||
17 | return get_user(*addr, rp); | ||
18 | #endif | ||
19 | } | ||
20 | |||
21 | static inline int flat_put_addr_at_rp(u32 __user *rp, u32 addr, u32 rel) | ||
22 | { | ||
23 | #ifdef CONFIG_CPU_HAS_NO_UNALIGNED | ||
24 | return copy_to_user(rp, &addr, 4) ? -EFAULT : 0; | ||
25 | #else | ||
26 | return put_user(addr, rp); | ||
27 | #endif | ||
28 | } | ||
29 | 10 | ||
30 | #define FLAT_PLAT_INIT(regs) \ | 11 | #define FLAT_PLAT_INIT(regs) \ |
31 | do { \ | 12 | do { \ |