[OE-core] [PATCH] kexec: ARM: fix align issue of add_buffer_phys_virt() for LPAE kernel.

Burton, Ross ross.burton at intel.com
Fri Jan 6 14:32:10 UTC 2017


Can you rebase and resent the patch please then?

Cheers,
Ross

On 6 January 2017 at 02:40, Bai, Haiqing (Wind River) <
haiqing.bai at windriver.com> wrote:

> Hi, Ross:
>
>
>
>       I clone the branch (poky-contrib:ross/mut) and did’t find the fix
> in 2.0.14,  so this fix is still required.  Thanks
>
>
>
> B,R
>
> Haiqing Bai
>
> *From:* Burton, Ross [mailto:ross.burton at intel.com]
> *Sent:* 2017年1月4日 22:32
> *To:* Bai, Haiqing
> *Cc:* OE-core
> *Subject:* Re: [OE-core] [PATCH] kexec: ARM: fix align issue of
> add_buffer_phys_virt() for LPAE kernel.
>
>
>
> An upgrade to 2.0.14 was recently posted on the list (and is now in
> poky-contrib:ross/mut), can you verify that this patch is still required
> with that release and rebase?
>
>
>
> Ross
>
>
>
> On 3 January 2017 at 09:05, Haiqing Bai <Haiqing.Bai at windriver.com> wrote:
>
> 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 at 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 at 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 at gmail.com
> +Signed-off-by: Haiqing Bai <Haiqing.Bai at 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
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20170106/b9a03992/attachment-0002.html>


More information about the Openembedded-core mailing list