Commit 8a5f78d9 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'riscv-for-linus-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux

Pull RISC-V fixes from Palmer Dabbelt:
 "Two fixes this week:

   - A fix to actually reserve the device tree's memory. Without this
     the device tree can be overwritten on systems that don't otherwise
     reserve it. This issue should only manifest on !MMU systems.

   - A workaround for a BUG() that triggers when the memory that
     originally contained initdata is freed and later repurposed. This
     triggers a BUG() on builds that had HARDENED_USERCOPY enabled"

* tag 'riscv-for-linus-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
  riscv: Fixup bootup failure with HARDENED_USERCOPY
  RISC-V: Make sure memblock reserves the memory containing DT
parents 277e570a 84814460
...@@ -22,13 +22,11 @@ SECTIONS ...@@ -22,13 +22,11 @@ SECTIONS
/* Beginning of code and text segment */ /* Beginning of code and text segment */
. = LOAD_OFFSET; . = LOAD_OFFSET;
_start = .; _start = .;
_stext = .;
HEAD_TEXT_SECTION HEAD_TEXT_SECTION
. = ALIGN(PAGE_SIZE); . = ALIGN(PAGE_SIZE);
__init_begin = .; __init_begin = .;
INIT_TEXT_SECTION(PAGE_SIZE) INIT_TEXT_SECTION(PAGE_SIZE)
INIT_DATA_SECTION(16)
. = ALIGN(8); . = ALIGN(8);
__soc_early_init_table : { __soc_early_init_table : {
__soc_early_init_table_start = .; __soc_early_init_table_start = .;
...@@ -55,6 +53,7 @@ SECTIONS ...@@ -55,6 +53,7 @@ SECTIONS
. = ALIGN(SECTION_ALIGN); . = ALIGN(SECTION_ALIGN);
.text : { .text : {
_text = .; _text = .;
_stext = .;
TEXT_TEXT TEXT_TEXT
SCHED_TEXT SCHED_TEXT
CPUIDLE_TEXT CPUIDLE_TEXT
...@@ -67,6 +66,8 @@ SECTIONS ...@@ -67,6 +66,8 @@ SECTIONS
_etext = .; _etext = .;
} }
INIT_DATA_SECTION(16)
/* Start of data section */ /* Start of data section */
_sdata = .; _sdata = .;
RO_DATA(SECTION_ALIGN) RO_DATA(SECTION_ALIGN)
......
...@@ -515,6 +515,7 @@ asmlinkage void __init setup_vm(uintptr_t dtb_pa) ...@@ -515,6 +515,7 @@ asmlinkage void __init setup_vm(uintptr_t dtb_pa)
#else #else
dtb_early_va = (void *)dtb_pa; dtb_early_va = (void *)dtb_pa;
#endif #endif
dtb_early_pa = dtb_pa;
} }
static inline void setup_vm_final(void) static inline void setup_vm_final(void)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment