All of lore.kernel.org
 help / color / mirror / Atom feed
From: msalter@redhat.com (Mark Salter)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 5/6] arm64: initialize pgprot info earlier in boot
Date: Thu,  9 Jan 2014 22:50:32 -0500	[thread overview]
Message-ID: <1389325833-16535-6-git-send-email-msalter@redhat.com> (raw)
In-Reply-To: <1389325833-16535-1-git-send-email-msalter@redhat.com>

Presently, paging_init() calls init_mem_pgprot() to initialize pgprot
values used by macros such as PAGE_KERNEL, PAGE_KERNEL_EXEC, etc. The
new fixmap and early_ioremap support also needs to use these macros
before paging_init() is called. This patch moves the init_mem_pgprot()
call out of paging_init() and into setup_arch() so that pgprot_default
gets initialized in time for fixmap and early_ioremap.

Signed-off-by: Mark Salter <msalter@redhat.com>
CC: linux-arm-kernel at lists.infradead.org
CC: Catalin Marinas <catalin.marinas@arm.com>
CC: Will Deacon <will.deacon@arm.com>
---
 arch/arm64/include/asm/mmu.h | 1 +
 arch/arm64/kernel/setup.c    | 2 ++
 arch/arm64/mm/mmu.c          | 3 +--
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/include/asm/mmu.h b/arch/arm64/include/asm/mmu.h
index 2494fc0..f600d40 100644
--- a/arch/arm64/include/asm/mmu.h
+++ b/arch/arm64/include/asm/mmu.h
@@ -27,5 +27,6 @@ typedef struct {
 extern void paging_init(void);
 extern void setup_mm_for_reboot(void);
 extern void __iomem *early_io_map(phys_addr_t phys, unsigned long virt);
+extern void init_mem_pgprot(void);
 
 #endif
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
index bd9bbd0..029ecfe 100644
--- a/arch/arm64/kernel/setup.c
+++ b/arch/arm64/kernel/setup.c
@@ -221,6 +221,8 @@ void __init setup_arch(char **cmdline_p)
 
 	*cmdline_p = boot_command_line;
 
+	init_mem_pgprot();
+
 	parse_early_param();
 
 	arm64_memblock_init();
diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
index f557ebb..541c782 100644
--- a/arch/arm64/mm/mmu.c
+++ b/arch/arm64/mm/mmu.c
@@ -125,7 +125,7 @@ early_param("cachepolicy", early_cachepolicy);
 /*
  * Adjust the PMD section entries according to the CPU in use.
  */
-static void __init init_mem_pgprot(void)
+void __init init_mem_pgprot(void)
 {
 	pteval_t default_pgprot;
 	int i;
@@ -349,7 +349,6 @@ void __init paging_init(void)
 {
 	void *zero_page;
 
-	init_mem_pgprot();
 	map_mem();
 
 	/*
-- 
1.8.3.1

WARNING: multiple messages have this Message-ID (diff)
From: Mark Salter <msalter@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: Mark Salter <msalter@redhat.com>,
	linux-arm-kernel@lists.infradead.org,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will.deacon@arm.com>
Subject: [PATCH v3 5/6] arm64: initialize pgprot info earlier in boot
Date: Thu,  9 Jan 2014 22:50:32 -0500	[thread overview]
Message-ID: <1389325833-16535-6-git-send-email-msalter@redhat.com> (raw)
In-Reply-To: <1389325833-16535-1-git-send-email-msalter@redhat.com>

Presently, paging_init() calls init_mem_pgprot() to initialize pgprot
values used by macros such as PAGE_KERNEL, PAGE_KERNEL_EXEC, etc. The
new fixmap and early_ioremap support also needs to use these macros
before paging_init() is called. This patch moves the init_mem_pgprot()
call out of paging_init() and into setup_arch() so that pgprot_default
gets initialized in time for fixmap and early_ioremap.

Signed-off-by: Mark Salter <msalter@redhat.com>
CC: linux-arm-kernel@lists.infradead.org
CC: Catalin Marinas <catalin.marinas@arm.com>
CC: Will Deacon <will.deacon@arm.com>
---
 arch/arm64/include/asm/mmu.h | 1 +
 arch/arm64/kernel/setup.c    | 2 ++
 arch/arm64/mm/mmu.c          | 3 +--
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/include/asm/mmu.h b/arch/arm64/include/asm/mmu.h
index 2494fc0..f600d40 100644
--- a/arch/arm64/include/asm/mmu.h
+++ b/arch/arm64/include/asm/mmu.h
@@ -27,5 +27,6 @@ typedef struct {
 extern void paging_init(void);
 extern void setup_mm_for_reboot(void);
 extern void __iomem *early_io_map(phys_addr_t phys, unsigned long virt);
+extern void init_mem_pgprot(void);
 
 #endif
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
index bd9bbd0..029ecfe 100644
--- a/arch/arm64/kernel/setup.c
+++ b/arch/arm64/kernel/setup.c
@@ -221,6 +221,8 @@ void __init setup_arch(char **cmdline_p)
 
 	*cmdline_p = boot_command_line;
 
+	init_mem_pgprot();
+
 	parse_early_param();
 
 	arm64_memblock_init();
diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
index f557ebb..541c782 100644
--- a/arch/arm64/mm/mmu.c
+++ b/arch/arm64/mm/mmu.c
@@ -125,7 +125,7 @@ early_param("cachepolicy", early_cachepolicy);
 /*
  * Adjust the PMD section entries according to the CPU in use.
  */
-static void __init init_mem_pgprot(void)
+void __init init_mem_pgprot(void)
 {
 	pteval_t default_pgprot;
 	int i;
@@ -349,7 +349,6 @@ void __init paging_init(void)
 {
 	void *zero_page;
 
-	init_mem_pgprot();
 	map_mem();
 
 	/*
-- 
1.8.3.1


  parent reply	other threads:[~2014-01-10  3:50 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-10  3:50 [PATCH v3 0/6] generic early_ioremap support Mark Salter
2014-01-10  3:50 ` Mark Salter
2014-01-10  3:50 ` [PATCH v3 1/6] x86/mm: sparse warning fix for early_memremap Mark Salter
2014-01-10  3:50 ` [PATCH v3 2/6] mm: create generic early_ioremap() support Mark Salter
2014-01-10  3:50   ` Mark Salter
2014-01-10  3:50 ` [PATCH v3 3/6] x86: use generic early_ioremap Mark Salter
2014-01-10  3:50 ` [PATCH v3 4/6] arm: add early_ioremap support Mark Salter
2014-01-10  3:50   ` Mark Salter
2014-01-10 11:34   ` Russell King - ARM Linux
2014-01-10 11:34     ` Russell King - ARM Linux
2014-01-10 13:50     ` Mark Salter
2014-01-10 16:11   ` Rob Herring
2014-01-10 16:11     ` Rob Herring
2014-01-10 16:58     ` Catalin Marinas
2014-01-10 16:58       ` Catalin Marinas
2014-01-10 20:04       ` Rob Herring
2014-01-10 20:04         ` Rob Herring
2014-01-10 20:09       ` Rob Herring
2014-01-10 20:09         ` Rob Herring
2014-01-10 20:51     ` Mark Salter
2014-01-10 20:51       ` Mark Salter
2014-01-10 20:40   ` Stephen Boyd
2014-01-10 20:40     ` Stephen Boyd
2014-01-10 20:52     ` Mark Salter
2014-01-10 20:52       ` Mark Salter
2014-01-16  0:32   ` Laura Abbott
2014-01-16  0:32     ` Laura Abbott
2014-01-16  0:35     ` Russell King - ARM Linux
2014-01-16  0:35       ` Russell King - ARM Linux
2014-01-16  2:13     ` Mark Salter
2014-01-16  2:13       ` Mark Salter
2014-01-10  3:50 ` Mark Salter [this message]
2014-01-10  3:50   ` [PATCH v3 5/6] arm64: initialize pgprot info earlier in boot Mark Salter
2014-01-10  3:50 ` [PATCH v3 6/6] arm64: add early_ioremap support Mark Salter
2014-01-10  3:50   ` Mark Salter

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=1389325833-16535-6-git-send-email-msalter@redhat.com \
    --to=msalter@redhat.com \
    --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.