summaryrefslogtreecommitdiffstats
path: root/arch/riscv/mm/Makefile
diff options
context:
space:
mode:
authorAnup Patel <Anup.Patel@wdc.com>2019-03-26 08:03:47 +0000
committerPalmer Dabbelt <palmer@sifive.com>2019-03-26 18:25:06 -0700
commit387181dcdb6c1ee254efab4744846a7a53d4c4cb (patch)
tree30e2aa91c25ce3dc05ee9b4f790a65e46941c050 /arch/riscv/mm/Makefile
parentdbee9c9c45846f003ec2f819710c2f4835630a6a (diff)
downloadlinux-387181dcdb6c1ee254efab4744846a7a53d4c4cb.tar.gz
linux-387181dcdb6c1ee254efab4744846a7a53d4c4cb.tar.bz2
linux-387181dcdb6c1ee254efab4744846a7a53d4c4cb.zip
RISC-V: Always compile mm/init.c with cmodel=medany and notrace
The Linux RISC-V 32bit kernel is broken after we moved setup_vm() from kernel/setup.c to mm/init.c because Linux RISC-V 32bit kernel by default uses cmodel=medlow which results in a non-position-independent setup_vm(). This patch fixes Linux RISC-V 32bit kernel booting by: 1. Forcing cmodel=medany for mm/init.c 2. Moving remaing MM-related stuff va_pa_offset, pfn_base and empty_zero_page from kernel/setup.c to mm/init.c Further, the setup_vm() cannot handle GCC instrumentation for FTRACE so we disable it for mm/init.c by not using "-pg" compiler flag. Fixes: 6f1e9e946f0b ("RISC-V: Move setup_vm() to mm/init.c") Suggested-by: Christoph Hellwig <hch@lst.de> Suggested-by: Mike Rapoport <rppt@linux.ibm.com> Signed-off-by: Anup Patel <anup.patel@wdc.com> Reviewed-by: Mike Rapoport <rppt@linux.ibm.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Palmer Dabbelt <palmer@sifive.com>
Diffstat (limited to 'arch/riscv/mm/Makefile')
-rw-r--r--arch/riscv/mm/Makefile6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/riscv/mm/Makefile b/arch/riscv/mm/Makefile
index eb22ab49b3e0..b68aac701803 100644
--- a/arch/riscv/mm/Makefile
+++ b/arch/riscv/mm/Makefile
@@ -1,3 +1,9 @@
+
+CFLAGS_init.o := -mcmodel=medany
+ifdef CONFIG_FTRACE
+CFLAGS_REMOVE_init.o = -pg
+endif
+
obj-y += init.o
obj-y += fault.o
obj-y += extable.o