From: ard.biesheuvel@linaro.org (Ard Biesheuvel)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 11/13] arm64: map linear region as non-executable
Date: Wed, 15 Apr 2015 17:34:22 +0200 [thread overview]
Message-ID: <1429112064-19952-12-git-send-email-ard.biesheuvel@linaro.org> (raw)
In-Reply-To: <1429112064-19952-1-git-send-email-ard.biesheuvel@linaro.org>
Now that we moved the kernel text out of the linear region, there
is no longer a reason to map it as executable. This also allows
us to completely get rid of the __map_mem() variant that only maps
some of it executable if CONFIG_DEBUG_RODATA is selected.
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
arch/arm64/mm/mmu.c | 41 ++---------------------------------------
1 file changed, 2 insertions(+), 39 deletions(-)
diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
index b457b7e425cc..c07ba8bdd8ed 100644
--- a/arch/arm64/mm/mmu.c
+++ b/arch/arm64/mm/mmu.c
@@ -303,47 +303,10 @@ static void create_mapping_late(phys_addr_t phys, unsigned long virt,
phys, virt, size, prot, late_alloc);
}
-#ifdef CONFIG_DEBUG_RODATA
static void __init __map_memblock(phys_addr_t start, phys_addr_t end)
{
- /*
- * Set up the executable regions using the existing section mappings
- * for now. This will get more fine grained later once all memory
- * is mapped
- */
- unsigned long kernel_x_start = round_down(__pa(_stext), SECTION_SIZE);
- unsigned long kernel_x_end = round_up(__pa(__init_end), SECTION_SIZE);
-
- if (end < kernel_x_start) {
- create_mapping(start, __phys_to_virt(start),
- end - start, PAGE_KERNEL);
- } else if (start >= kernel_x_end) {
- create_mapping(start, __phys_to_virt(start),
- end - start, PAGE_KERNEL);
- } else {
- if (start < kernel_x_start)
- create_mapping(start, __phys_to_virt(start),
- kernel_x_start - start,
- PAGE_KERNEL);
- create_mapping(kernel_x_start,
- __phys_to_virt(kernel_x_start),
- kernel_x_end - kernel_x_start,
- PAGE_KERNEL_EXEC);
- if (kernel_x_end < end)
- create_mapping(kernel_x_end,
- __phys_to_virt(kernel_x_end),
- end - kernel_x_end,
- PAGE_KERNEL);
- }
-
-}
-#else
-static void __init __map_memblock(phys_addr_t start, phys_addr_t end)
-{
- create_mapping(start, __phys_to_virt(start), end - start,
- PAGE_KERNEL_EXEC);
+ create_mapping(start, __phys_to_virt(start), end - start, PAGE_KERNEL);
}
-#endif
struct bootstrap_pgtables {
pte_t pte[PTRS_PER_PTE];
@@ -429,7 +392,7 @@ static void __init bootstrap_linear_mapping(unsigned long va_offset)
#endif
create_mapping(__pa(vstart - va_offset), vstart, vend - vstart,
- PAGE_KERNEL_EXEC);
+ PAGE_KERNEL);
/*
* Temporarily limit the memblock range. We need to do this as
--
1.8.3.2
next prev parent reply other threads:[~2015-04-15 15:34 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-15 15:34 [PATCH v4 00/13] arm64: update/clarify/relax Image and FDT placement rules Ard Biesheuvel
2015-04-15 15:34 ` [PATCH v4 01/13] arm64: reduce ID map to a single page Ard Biesheuvel
2015-04-15 15:34 ` [PATCH v4 02/13] arm64: drop sleep_idmap_phys and clean up cpu_resume() Ard Biesheuvel
2015-04-15 15:34 ` [PATCH v4 03/13] of/fdt: split off FDT self reservation from memreserve processing Ard Biesheuvel
2015-04-15 15:34 ` [PATCH v4 04/13] arm64: use fixmap region for permanent FDT mapping Ard Biesheuvel
2015-04-17 15:13 ` Mark Rutland
2015-04-15 15:34 ` [PATCH v4 05/13] arm64/efi: adapt to relaxed FDT placement requirements Ard Biesheuvel
2015-04-15 15:34 ` [PATCH v4 06/13] arm64: implement our own early_init_dt_add_memory_arch() Ard Biesheuvel
2015-04-15 15:34 ` [PATCH v4 07/13] arm64: use more granular reservations for static page table allocations Ard Biesheuvel
2015-04-15 15:34 ` [PATCH v4 08/13] arm64: split off early mapping code from early_fixmap_init() Ard Biesheuvel
2015-04-15 15:34 ` [PATCH v4 09/13] arm64: mm: explicitly bootstrap the linear mapping Ard Biesheuvel
2015-05-07 16:54 ` Catalin Marinas
2015-05-07 19:21 ` Ard Biesheuvel
2015-05-08 14:44 ` Catalin Marinas
2015-05-08 15:03 ` Ard Biesheuvel
2015-05-08 16:43 ` Catalin Marinas
2015-05-08 16:59 ` Ard Biesheuvel
2015-04-15 15:34 ` [PATCH v4 10/13] arm64: move kernel mapping out of linear region Ard Biesheuvel
2015-05-08 17:16 ` Catalin Marinas
2015-05-08 17:26 ` Ard Biesheuvel
2015-05-08 17:27 ` Ard Biesheuvel
2015-04-15 15:34 ` Ard Biesheuvel [this message]
2015-04-15 15:34 ` [PATCH v4 12/13] arm64: allow kernel Image to be loaded anywhere in physical memory Ard Biesheuvel
2015-04-15 15:34 ` [PATCH v4 13/13] arm64/efi: adapt to relaxed kernel Image placement requirements Ard Biesheuvel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1429112064-19952-12-git-send-email-ard.biesheuvel@linaro.org \
--to=ard.biesheuvel@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.