Thread (20 messages) flat view 20 messages, 3 authors, 2016-07-26
STALE3695d

Revision v5 of 2 in this series.

Revisions (2)
  1. v5 [diff vs current]
  2. v5 current

[PATCH v5 14/15] m68k: enable binfmt_flat on systems with an MMU

From: Nicolas Pitre <hidden>
Date: 2016-07-24 15:30:41
Also in: linux-fsdevel, lkml
Subsystem: exec & binfmt api, elf, filesystems (vfs and infrastructure), m68k architecture, the rest · Maintainers: Kees Cook, Alexander Viro, Christian Brauner, Geert Uytterhoeven, Linus Torvalds

Now that the generic changes are in place, this can be enabled on m68k
with the use of proper user space accessors in the flat_get_addr_from_rp()
and flat_put_addr_at_rp() handlers as rp actually holds a user space
address.

Signed-off-by: Nicolas Pitre <redacted>
---
 arch/m68k/include/asm/flat.h | 5 +++--
 fs/Kconfig.binfmt            | 3 ++-
 2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/arch/m68k/include/asm/flat.h b/arch/m68k/include/asm/flat.h
index f46c2f044f..a97c479b11 100644
--- a/arch/m68k/include/asm/flat.h
+++ b/arch/m68k/include/asm/flat.h
@@ -8,8 +8,9 @@
 #define	flat_argvp_envp_on_stack()		1
 #define	flat_old_ram_flag(flags)		(flags)
 #define	flat_reloc_valid(reloc, size)		((reloc) <= (size))
-#define	flat_get_addr_from_rp(rp, relval, flags, p)	get_unaligned(rp)
-#define	flat_put_addr_at_rp(rp, val, relval)	put_unaligned(val,rp)
+#define	flat_get_addr_from_rp(rp, relval, flags, p) \
+	({ unsigned long __val; __get_user_unaligned(__val, rp); __val; })
+#define	flat_put_addr_at_rp(rp, val, relval)	__put_user_unaligned(val, rp)
 #define	flat_get_relocate_addr(rel)		(rel)
 
 static inline int flat_set_persistent(unsigned long relval,
diff --git a/fs/Kconfig.binfmt b/fs/Kconfig.binfmt
index 72c03354c1..c7efddf6e0 100644
--- a/fs/Kconfig.binfmt
+++ b/fs/Kconfig.binfmt
@@ -89,7 +89,8 @@ config BINFMT_SCRIPT
 
 config BINFMT_FLAT
 	bool "Kernel support for flat binaries"
-	depends on !MMU && (!FRV || BROKEN)
+	depends on !MMU || M68K
+	depends on !FRV || BROKEN
 	help
 	  Support uClinux FLAT format binaries.
 
-- 
2.7.4
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help