Commit 2821c393 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux

Pull arm64 fixes from Catalin Marinas:

 - Fix "rodata=on" not disabling "rodata=full" on arm64

 - Add arm64 make dependency between vmlinuz.efi and Image, leading to
   occasional build failures previously (with parallel building)

 - Add newline to the output formatting of the za-fork kselftest

* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
  arm64: add dependency between vmlinuz.efi and Image
  kselftest/arm64: Fix output formatting for za-fork
  arm64: mm: Fix "rodata=on" when CONFIG_RODATA_FULL_DEFAULT_ENABLED=y
parents 00cff7b2 c0a85742
...@@ -158,7 +158,7 @@ endif ...@@ -158,7 +158,7 @@ endif
all: $(notdir $(KBUILD_IMAGE)) all: $(notdir $(KBUILD_IMAGE))
vmlinuz.efi: Image
Image vmlinuz.efi: vmlinux Image vmlinuz.efi: vmlinux
$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
......
...@@ -21,9 +21,22 @@ static inline bool arch_parse_debug_rodata(char *arg) ...@@ -21,9 +21,22 @@ static inline bool arch_parse_debug_rodata(char *arg)
extern bool rodata_enabled; extern bool rodata_enabled;
extern bool rodata_full; extern bool rodata_full;
if (arg && !strcmp(arg, "full")) { if (!arg)
return false;
if (!strcmp(arg, "full")) {
rodata_enabled = rodata_full = true;
return true;
}
if (!strcmp(arg, "off")) {
rodata_enabled = rodata_full = false;
return true;
}
if (!strcmp(arg, "on")) {
rodata_enabled = true; rodata_enabled = true;
rodata_full = true; rodata_full = false;
return true; return true;
} }
......
...@@ -29,8 +29,8 @@ bool can_set_direct_map(void) ...@@ -29,8 +29,8 @@ bool can_set_direct_map(void)
* *
* KFENCE pool requires page-granular mapping if initialized late. * KFENCE pool requires page-granular mapping if initialized late.
*/ */
return (rodata_enabled && rodata_full) || debug_pagealloc_enabled() || return rodata_full || debug_pagealloc_enabled() ||
arm64_kfence_can_set_direct_map(); arm64_kfence_can_set_direct_map();
} }
static int change_page_range(pte_t *ptep, unsigned long addr, void *data) static int change_page_range(pte_t *ptep, unsigned long addr, void *data)
...@@ -105,8 +105,7 @@ static int change_memory_common(unsigned long addr, int numpages, ...@@ -105,8 +105,7 @@ static int change_memory_common(unsigned long addr, int numpages,
* If we are manipulating read-only permissions, apply the same * If we are manipulating read-only permissions, apply the same
* change to the linear mapping of the pages that back this VM area. * change to the linear mapping of the pages that back this VM area.
*/ */
if (rodata_enabled && if (rodata_full && (pgprot_val(set_mask) == PTE_RDONLY ||
rodata_full && (pgprot_val(set_mask) == PTE_RDONLY ||
pgprot_val(clear_mask) == PTE_RDONLY)) { pgprot_val(clear_mask) == PTE_RDONLY)) {
for (i = 0; i < area->nr_pages; i++) { for (i = 0; i < area->nr_pages; i++) {
__change_memory_common((u64)page_address(area->pages[i]), __change_memory_common((u64)page_address(area->pages[i]),
......
...@@ -85,7 +85,7 @@ int main(int argc, char **argv) ...@@ -85,7 +85,7 @@ int main(int argc, char **argv)
*/ */
ret = open("/proc/sys/abi/sme_default_vector_length", O_RDONLY, 0); ret = open("/proc/sys/abi/sme_default_vector_length", O_RDONLY, 0);
if (ret >= 0) { if (ret >= 0) {
ksft_test_result(fork_test(), "fork_test"); ksft_test_result(fork_test(), "fork_test\n");
} else { } else {
ksft_print_msg("SME not supported\n"); ksft_print_msg("SME not supported\n");
......
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