All of lore.kernel.org
 help / color / mirror / Atom feed
From: Haiqing Bai <Haiqing.Bai@windriver.com>
To: <openembedded-core@lists.openembedded.org>
Subject: [PATCH] kexec: ARM: fix align issue of add_buffer_phys_virt() for LPAE kernel.
Date: Tue, 3 Jan 2017 17:05:04 +0800	[thread overview]
Message-ID: <1483434305-15926-1-git-send-email-Haiqing.Bai@windriver.com> (raw)

If LPAE is enabled, 3 level page table is used and the 'SECTION_SIZE'
is (1<<21), so add_buffer_phys_virt() should align to (1 << 21).

Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
---
 ...-ARM-fix-add_buffer_phys_virt-align-issue.patch | 52 ++++++++++++++++++++++
 meta/recipes-kernel/kexec/kexec-tools_2.0.12.bb    |  1 +
 2 files changed, 53 insertions(+)
 create mode 100644 meta/recipes-kernel/kexec/kexec-tools/kexec-ARM-fix-add_buffer_phys_virt-align-issue.patch

diff --git a/meta/recipes-kernel/kexec/kexec-tools/kexec-ARM-fix-add_buffer_phys_virt-align-issue.patch b/meta/recipes-kernel/kexec/kexec-tools/kexec-ARM-fix-add_buffer_phys_virt-align-issue.patch
new file mode 100644
index 0000000..7d1f95e
--- /dev/null
+++ b/meta/recipes-kernel/kexec/kexec-tools/kexec-ARM-fix-add_buffer_phys_virt-align-issue.patch
@@ -0,0 +1,52 @@
+From 380019f68e19ac863cf32dc7ff6784e8fe1d751f Mon Sep 17 00:00:00 2001
+From: Haiqing Bai <Haiqing.Bai@windriver.com>
+Date: Mon, 19 Dec 2016 14:52:02 +0800
+Subject: [PATCH] kexec: ARM: Fix add_buffer_phys_virt() align issue.
+
+When "CONFIG_ARM_LPAE" is enabled,3 level page table
+is used by MMU, the "SECTION_SIZE" is defined with
+(1 << 21), but 'add_buffer_phys_virt()' hardcode this
+to (1 << 20).
+
+Upstream-Status: Pending
+
+Suggested-By:fredrik.markstrom@gmail.com
+Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
+---
+ kexec/arch/arm/crashdump-arm.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/kexec/arch/arm/crashdump-arm.c b/kexec/arch/arm/crashdump-arm.c
+index 38a1401..e41b7fb 100644
+--- a/kexec/arch/arm/crashdump-arm.c
++++ b/kexec/arch/arm/crashdump-arm.c
+@@ -271,6 +271,7 @@ int load_crashdump_segments(struct kexec_info *info, char *mod_cmdline)
+ 	void *buf;
+ 	int err;
+ 	int last_ranges;
++	unsigned short align_bit_shift = 20;
+ 
+ 	/*
+ 	 * First fetch all the memory (RAM) ranges that we are going to pass to
+@@ -295,6 +296,7 @@ int load_crashdump_segments(struct kexec_info *info, char *mod_cmdline)
+ 
+ 		/* for support LPAE enabled kernel*/
+ 		elf_info.class = ELFCLASS64;
++		align_bit_shift = 21;
+ 
+ 		err = crash_create_elf64_headers(info, &elf_info,
+ 					 usablemem_rgns.ranges,
+@@ -315,8 +317,9 @@ int load_crashdump_segments(struct kexec_info *info, char *mod_cmdline)
+ 	 * 1MB) so that available memory passed in kernel command line will be
+ 	 * aligned to 1MB. This is because kernel create_mapping() wants memory
+ 	 * regions to be aligned to SECTION_SIZE.
++         * The SECTION_SIZE of LPAE kernel is '1UL << 21' defined in pgtable-3level.h
+ 	 */
+-	elfcorehdr = add_buffer_phys_virt(info, buf, bufsz, bufsz, 1 << 20,
++	elfcorehdr = add_buffer_phys_virt(info, buf, bufsz, bufsz, 1 << align_bit_shift,
+ 					  crash_reserved_mem.start,
+ 					  crash_reserved_mem.end, -1, 0);
+ 
+-- 
+1.9.1
+
diff --git a/meta/recipes-kernel/kexec/kexec-tools_2.0.12.bb b/meta/recipes-kernel/kexec/kexec-tools_2.0.12.bb
index 59376c8..3e38923 100644
--- a/meta/recipes-kernel/kexec/kexec-tools_2.0.12.bb
+++ b/meta/recipes-kernel/kexec/kexec-tools_2.0.12.bb
@@ -8,6 +8,7 @@ SRC_URI += " \
             file://0002-powerpc-change-the-memory-size-limit.patch \
             file://0001-purgatory-Pass-r-directly-to-linker.patch \
             file://0001-vmcore-dmesg-Define-_GNU_SOURCE.patch \
+            file://kexec-ARM-fix-add_buffer_phys_virt-align-issue.patch \
          "
 
 SRC_URI[md5sum] = "10ddaae0e86af54407b164a1f5a39cc3"
-- 
1.9.1



             reply	other threads:[~2017-01-03  9:09 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-03  9:05 Haiqing Bai [this message]
2017-01-04 14:31 ` [PATCH] kexec: ARM: fix align issue of add_buffer_phys_virt() for LPAE kernel Burton, Ross
2017-01-06  2:40   ` Bai, Haiqing
2017-01-06 14:32     ` Burton, Ross
2017-01-09  9:30       ` Bai, Haiqing
2017-01-09  8:15 Haiqing Bai

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=1483434305-15926-1-git-send-email-Haiqing.Bai@windriver.com \
    --to=haiqing.bai@windriver.com \
    --cc=openembedded-core@lists.openembedded.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.