diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-07-11 00:42:03 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-07-11 00:42:03 -0400 |
commit | 398364a35daed7361e76c3666fb9a97792edce09 (patch) | |
tree | 7a63b4df27d2dc75da8549499c79805128183f28 /arch/m68k | |
parent | d2b6b4c832f7e3067709e8d4970b7b82b44419ac (diff) | |
parent | ad97f9df0fee4ddc9ef056dda4dcbc6630d9f972 (diff) |
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu
Pull m68nommu updates from Greg Ungerer:
"A series of cleanups for the FLAT format binary loader, binfmt_flat,
from Christoph.
The end goal is to support no-MMU on RISC-V, and the last patch
enables that"
* 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
riscv: add binfmt_flat support
binfmt_flat: don't offset the data start
binfmt_flat: move the MAX_SHARED_LIBS definition to binfmt_flat.c
binfmt_flat: remove the persistent argument from flat_get_addr_from_rp
binfmt_flat: provide an asm-generic/flat.h
binfmt_flat: make support for old format binaries optional
binfmt_flat: add a ARCH_HAS_BINFMT_FLAT option
binfmt_flat: add endianess annotations
binfmt_flat: use fixed size type for the on-disk format
binfmt_flat: consolidate two version of flat_v2_reloc_t
binfmt_flat: remove the unused OLD_FLAT_FLAG_RAM definition
binfmt_flat: remove the uapi <linux/flat.h> header
binfmt_flat: replace flat_argvp_envp_on_stack with a Kconfig variable
binfmt_flat: remove flat_old_ram_flag
binfmt_flat: provide a default version of flat_get_relocate_addr
binfmt_flat: remove flat_set_persistent
binfmt_flat: remove flat_reloc_valid
Diffstat (limited to 'arch/m68k')
-rw-r--r-- | arch/m68k/Kconfig | 2 | ||||
-rw-r--r-- | arch/m68k/include/asm/flat.h | 30 |
2 files changed, 3 insertions, 29 deletions
diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig index 00f5c98a5e05..8f765cfefca6 100644 --- a/arch/m68k/Kconfig +++ b/arch/m68k/Kconfig | |||
@@ -3,12 +3,14 @@ config M68K | |||
3 | bool | 3 | bool |
4 | default y | 4 | default y |
5 | select ARCH_32BIT_OFF_T | 5 | select ARCH_32BIT_OFF_T |
6 | select ARCH_HAS_BINFMT_FLAT | ||
6 | select ARCH_HAS_DMA_MMAP_PGPROT if MMU && !COLDFIRE | 7 | select ARCH_HAS_DMA_MMAP_PGPROT if MMU && !COLDFIRE |
7 | select ARCH_HAS_DMA_PREP_COHERENT | 8 | select ARCH_HAS_DMA_PREP_COHERENT |
8 | select ARCH_HAS_SYNC_DMA_FOR_DEVICE if HAS_DMA | 9 | select ARCH_HAS_SYNC_DMA_FOR_DEVICE if HAS_DMA |
9 | select ARCH_MIGHT_HAVE_PC_PARPORT if ISA | 10 | select ARCH_MIGHT_HAVE_PC_PARPORT if ISA |
10 | select ARCH_NO_COHERENT_DMA_MMAP if !MMU | 11 | select ARCH_NO_COHERENT_DMA_MMAP if !MMU |
11 | select ARCH_NO_PREEMPT if !COLDFIRE | 12 | select ARCH_NO_PREEMPT if !COLDFIRE |
13 | select BINFMT_FLAT_ARGVP_ENVP_ON_STACK | ||
12 | select DMA_DIRECT_REMAP if HAS_DMA && MMU && !COLDFIRE | 14 | select DMA_DIRECT_REMAP if HAS_DMA && MMU && !COLDFIRE |
13 | select HAVE_IDE | 15 | select HAVE_IDE |
14 | select HAVE_AOUT if MMU | 16 | select HAVE_AOUT if MMU |
diff --git a/arch/m68k/include/asm/flat.h b/arch/m68k/include/asm/flat.h index 4f1d1e373420..46379e08cdd6 100644 --- a/arch/m68k/include/asm/flat.h +++ b/arch/m68k/include/asm/flat.h | |||
@@ -6,35 +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 | #define flat_argvp_envp_on_stack() 1 | ||
12 | #define flat_old_ram_flag(flags) (flags) | ||
13 | #define flat_reloc_valid(reloc, size) ((reloc) <= (size)) | ||
14 | static inline int flat_get_addr_from_rp(u32 __user *rp, u32 relval, u32 flags, | ||
15 | u32 *addr, u32 *persistent) | ||
16 | { | ||
17 | #ifdef CONFIG_CPU_HAS_NO_UNALIGNED | ||
18 | return copy_from_user(addr, rp, 4) ? -EFAULT : 0; | ||
19 | #else | ||
20 | return get_user(*addr, rp); | ||
21 | #endif | ||
22 | } | ||
23 | |||
24 | static inline int flat_put_addr_at_rp(u32 __user *rp, u32 addr, u32 rel) | ||
25 | { | ||
26 | #ifdef CONFIG_CPU_HAS_NO_UNALIGNED | ||
27 | return copy_to_user(rp, &addr, 4) ? -EFAULT : 0; | ||
28 | #else | ||
29 | return put_user(addr, rp); | ||
30 | #endif | ||
31 | } | ||
32 | #define flat_get_relocate_addr(rel) (rel) | ||
33 | |||
34 | static inline int flat_set_persistent(u32 relval, u32 *persistent) | ||
35 | { | ||
36 | return 0; | ||
37 | } | ||
38 | 10 | ||
39 | #define FLAT_PLAT_INIT(regs) \ | 11 | #define FLAT_PLAT_INIT(regs) \ |
40 | do { \ | 12 | do { \ |