From: AKASHI Takahiro <takahiro.akashi@linaro.org>
To: Dave Young <dyoung@redhat.com>
Cc: linux-s390@vger.kernel.org, prudo@linux.vnet.ibm.com,
bhe@redhat.com, mpe@ellerman.id.au, kexec@lists.infradead.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
bauerman@linux.vnet.ibm.com, vgoyal@redhat.com
Subject: Re: [PATCH 4/7] x86: kexec_file: remove X86_64 dependency from prepare_elf64_headers()
Date: Fri, 2 Mar 2018 14:33:26 +0900 [thread overview]
Message-ID: <20180302053325.GO6019@linaro.org> (raw)
In-Reply-To: <20180302051956.GB2952@dhcp-128-65.nay.redhat.com>
On Fri, Mar 02, 2018 at 01:19:56PM +0800, Dave Young wrote:
> On 02/27/18 at 01:48pm, AKASHI Takahiro wrote:
> > The code guarded by CONFIG_X86_64 is necessary on some architectures
> > which have a dedicated kernel mapping outside of linear memory mapping.
> > (arm64 is among those.)
> >
> > In this patch, an additional argument, kernel_map, is added to enable/
> > disable the code removing #ifdef.
> >
> > Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
> > Cc: Dave Young <dyoung@redhat.com>
> > Cc: Vivek Goyal <vgoyal@redhat.com>
> > Cc: Baoquan He <bhe@redhat.com>
> > ---
> > arch/x86/kernel/crash.c | 25 +++++++++++++------------
> > 1 file changed, 13 insertions(+), 12 deletions(-)
> >
> > diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c
> > index 2123fa0efc17..913fd8021f8a 100644
> > --- a/arch/x86/kernel/crash.c
> > +++ b/arch/x86/kernel/crash.c
> > @@ -347,7 +347,7 @@ static int prepare_elf64_ram_headers_callback(struct resource *res, void *arg)
> > return 0;
> > }
> >
> > -static int prepare_elf64_headers(struct crash_elf_data *ced,
> > +static int prepare_elf64_headers(struct crash_elf_data *ced, int kernel_map,
> > void **addr, unsigned long *sz)
> > {
> > Elf64_Ehdr *ehdr;
> > @@ -414,17 +414,17 @@ static int prepare_elf64_headers(struct crash_elf_data *ced,
> > phdr->p_filesz = phdr->p_memsz = VMCOREINFO_NOTE_SIZE;
> > (ehdr->e_phnum)++;
> >
> > -#ifdef CONFIG_X86_64
> > /* Prepare PT_LOAD type program header for kernel text region */
> > - phdr = (Elf64_Phdr *)bufp;
> > - bufp += sizeof(Elf64_Phdr);
> > - phdr->p_type = PT_LOAD;
> > - phdr->p_flags = PF_R|PF_W|PF_X;
> > - phdr->p_vaddr = (Elf64_Addr)_text;
> > - phdr->p_filesz = phdr->p_memsz = _end - _text;
> > - phdr->p_offset = phdr->p_paddr = __pa_symbol(_text);
> > - (ehdr->e_phnum)++;
> > -#endif
> > + if (kernel_map) {
> > + phdr = (Elf64_Phdr *)bufp;
> > + bufp += sizeof(Elf64_Phdr);
> > + phdr->p_type = PT_LOAD;
> > + phdr->p_flags = PF_R|PF_W|PF_X;
> > + phdr->p_vaddr = (Elf64_Addr)_text;
> > + phdr->p_filesz = phdr->p_memsz = _end - _text;
> > + phdr->p_offset = phdr->p_paddr = __pa_symbol(_text);
> > + (ehdr->e_phnum)++;
> > + }
> >
> > /* Go through all the ranges in cmem->ranges[] and prepare phdr */
> > for (i = 0; i < cmem->nr_ranges; i++) {
> > @@ -477,7 +477,8 @@ static int prepare_elf_headers(struct kimage *image, void **addr,
> > goto out;
> >
> > /* By default prepare 64bit headers */
> > - ret = prepare_elf64_headers(ced, addr, sz);
> > + ret = prepare_elf64_headers(ced,
> > + (int)IS_ENABLED(CONFIG_X86_64), addr, sz);
>
> A bool would be enough for kernel_map
Yeah, for now.
What I thought of is that we might want to extend its functionality
in the future as I did here for kernel_map without changing its interface.
But I'd defer to you.
-Takahiro AKASHI
> > if (ret)
> > goto out;
> >
>
> Thanks
> Dave
> > --
> > 2.16.2
> >
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
WARNING: multiple messages have this Message-ID (diff)
From: takahiro.akashi@linaro.org (AKASHI Takahiro)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 4/7] x86: kexec_file: remove X86_64 dependency from prepare_elf64_headers()
Date: Fri, 2 Mar 2018 14:33:26 +0900 [thread overview]
Message-ID: <20180302053325.GO6019@linaro.org> (raw)
In-Reply-To: <20180302051956.GB2952@dhcp-128-65.nay.redhat.com>
On Fri, Mar 02, 2018 at 01:19:56PM +0800, Dave Young wrote:
> On 02/27/18 at 01:48pm, AKASHI Takahiro wrote:
> > The code guarded by CONFIG_X86_64 is necessary on some architectures
> > which have a dedicated kernel mapping outside of linear memory mapping.
> > (arm64 is among those.)
> >
> > In this patch, an additional argument, kernel_map, is added to enable/
> > disable the code removing #ifdef.
> >
> > Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
> > Cc: Dave Young <dyoung@redhat.com>
> > Cc: Vivek Goyal <vgoyal@redhat.com>
> > Cc: Baoquan He <bhe@redhat.com>
> > ---
> > arch/x86/kernel/crash.c | 25 +++++++++++++------------
> > 1 file changed, 13 insertions(+), 12 deletions(-)
> >
> > diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c
> > index 2123fa0efc17..913fd8021f8a 100644
> > --- a/arch/x86/kernel/crash.c
> > +++ b/arch/x86/kernel/crash.c
> > @@ -347,7 +347,7 @@ static int prepare_elf64_ram_headers_callback(struct resource *res, void *arg)
> > return 0;
> > }
> >
> > -static int prepare_elf64_headers(struct crash_elf_data *ced,
> > +static int prepare_elf64_headers(struct crash_elf_data *ced, int kernel_map,
> > void **addr, unsigned long *sz)
> > {
> > Elf64_Ehdr *ehdr;
> > @@ -414,17 +414,17 @@ static int prepare_elf64_headers(struct crash_elf_data *ced,
> > phdr->p_filesz = phdr->p_memsz = VMCOREINFO_NOTE_SIZE;
> > (ehdr->e_phnum)++;
> >
> > -#ifdef CONFIG_X86_64
> > /* Prepare PT_LOAD type program header for kernel text region */
> > - phdr = (Elf64_Phdr *)bufp;
> > - bufp += sizeof(Elf64_Phdr);
> > - phdr->p_type = PT_LOAD;
> > - phdr->p_flags = PF_R|PF_W|PF_X;
> > - phdr->p_vaddr = (Elf64_Addr)_text;
> > - phdr->p_filesz = phdr->p_memsz = _end - _text;
> > - phdr->p_offset = phdr->p_paddr = __pa_symbol(_text);
> > - (ehdr->e_phnum)++;
> > -#endif
> > + if (kernel_map) {
> > + phdr = (Elf64_Phdr *)bufp;
> > + bufp += sizeof(Elf64_Phdr);
> > + phdr->p_type = PT_LOAD;
> > + phdr->p_flags = PF_R|PF_W|PF_X;
> > + phdr->p_vaddr = (Elf64_Addr)_text;
> > + phdr->p_filesz = phdr->p_memsz = _end - _text;
> > + phdr->p_offset = phdr->p_paddr = __pa_symbol(_text);
> > + (ehdr->e_phnum)++;
> > + }
> >
> > /* Go through all the ranges in cmem->ranges[] and prepare phdr */
> > for (i = 0; i < cmem->nr_ranges; i++) {
> > @@ -477,7 +477,8 @@ static int prepare_elf_headers(struct kimage *image, void **addr,
> > goto out;
> >
> > /* By default prepare 64bit headers */
> > - ret = prepare_elf64_headers(ced, addr, sz);
> > + ret = prepare_elf64_headers(ced,
> > + (int)IS_ENABLED(CONFIG_X86_64), addr, sz);
>
> A bool would be enough for kernel_map
Yeah, for now.
What I thought of is that we might want to extend its functionality
in the future as I did here for kernel_map without changing its interface.
But I'd defer to you.
-Takahiro AKASHI
> > if (ret)
> > goto out;
> >
>
> Thanks
> Dave
> > --
> > 2.16.2
> >
WARNING: multiple messages have this Message-ID (diff)
From: AKASHI Takahiro <takahiro.akashi@linaro.org>
To: Dave Young <dyoung@redhat.com>
Cc: vgoyal@redhat.com, bhe@redhat.com, mpe@ellerman.id.au,
bauerman@linux.vnet.ibm.com, prudo@linux.vnet.ibm.com,
kexec@lists.infradead.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org
Subject: Re: [PATCH 4/7] x86: kexec_file: remove X86_64 dependency from prepare_elf64_headers()
Date: Fri, 2 Mar 2018 14:33:26 +0900 [thread overview]
Message-ID: <20180302053325.GO6019@linaro.org> (raw)
In-Reply-To: <20180302051956.GB2952@dhcp-128-65.nay.redhat.com>
On Fri, Mar 02, 2018 at 01:19:56PM +0800, Dave Young wrote:
> On 02/27/18 at 01:48pm, AKASHI Takahiro wrote:
> > The code guarded by CONFIG_X86_64 is necessary on some architectures
> > which have a dedicated kernel mapping outside of linear memory mapping.
> > (arm64 is among those.)
> >
> > In this patch, an additional argument, kernel_map, is added to enable/
> > disable the code removing #ifdef.
> >
> > Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
> > Cc: Dave Young <dyoung@redhat.com>
> > Cc: Vivek Goyal <vgoyal@redhat.com>
> > Cc: Baoquan He <bhe@redhat.com>
> > ---
> > arch/x86/kernel/crash.c | 25 +++++++++++++------------
> > 1 file changed, 13 insertions(+), 12 deletions(-)
> >
> > diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c
> > index 2123fa0efc17..913fd8021f8a 100644
> > --- a/arch/x86/kernel/crash.c
> > +++ b/arch/x86/kernel/crash.c
> > @@ -347,7 +347,7 @@ static int prepare_elf64_ram_headers_callback(struct resource *res, void *arg)
> > return 0;
> > }
> >
> > -static int prepare_elf64_headers(struct crash_elf_data *ced,
> > +static int prepare_elf64_headers(struct crash_elf_data *ced, int kernel_map,
> > void **addr, unsigned long *sz)
> > {
> > Elf64_Ehdr *ehdr;
> > @@ -414,17 +414,17 @@ static int prepare_elf64_headers(struct crash_elf_data *ced,
> > phdr->p_filesz = phdr->p_memsz = VMCOREINFO_NOTE_SIZE;
> > (ehdr->e_phnum)++;
> >
> > -#ifdef CONFIG_X86_64
> > /* Prepare PT_LOAD type program header for kernel text region */
> > - phdr = (Elf64_Phdr *)bufp;
> > - bufp += sizeof(Elf64_Phdr);
> > - phdr->p_type = PT_LOAD;
> > - phdr->p_flags = PF_R|PF_W|PF_X;
> > - phdr->p_vaddr = (Elf64_Addr)_text;
> > - phdr->p_filesz = phdr->p_memsz = _end - _text;
> > - phdr->p_offset = phdr->p_paddr = __pa_symbol(_text);
> > - (ehdr->e_phnum)++;
> > -#endif
> > + if (kernel_map) {
> > + phdr = (Elf64_Phdr *)bufp;
> > + bufp += sizeof(Elf64_Phdr);
> > + phdr->p_type = PT_LOAD;
> > + phdr->p_flags = PF_R|PF_W|PF_X;
> > + phdr->p_vaddr = (Elf64_Addr)_text;
> > + phdr->p_filesz = phdr->p_memsz = _end - _text;
> > + phdr->p_offset = phdr->p_paddr = __pa_symbol(_text);
> > + (ehdr->e_phnum)++;
> > + }
> >
> > /* Go through all the ranges in cmem->ranges[] and prepare phdr */
> > for (i = 0; i < cmem->nr_ranges; i++) {
> > @@ -477,7 +477,8 @@ static int prepare_elf_headers(struct kimage *image, void **addr,
> > goto out;
> >
> > /* By default prepare 64bit headers */
> > - ret = prepare_elf64_headers(ced, addr, sz);
> > + ret = prepare_elf64_headers(ced,
> > + (int)IS_ENABLED(CONFIG_X86_64), addr, sz);
>
> A bool would be enough for kernel_map
Yeah, for now.
What I thought of is that we might want to extend its functionality
in the future as I did here for kernel_map without changing its interface.
But I'd defer to you.
-Takahiro AKASHI
> > if (ret)
> > goto out;
> >
>
> Thanks
> Dave
> > --
> > 2.16.2
> >
next prev parent reply other threads:[~2018-03-02 5:33 UTC|newest]
Thread overview: 81+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-27 4:48 [PATCH 0/7] kexec_file: refactoring for other architecutres AKASHI Takahiro
2018-02-27 4:48 ` AKASHI Takahiro
2018-02-27 4:48 ` AKASHI Takahiro
2018-02-27 4:48 ` [PATCH 1/7] kexec_file: make an use of purgatory optional AKASHI Takahiro
2018-02-27 4:48 ` AKASHI Takahiro
2018-02-27 4:48 ` AKASHI Takahiro
2018-03-02 5:58 ` Dave Young
2018-03-02 5:58 ` Dave Young
2018-03-02 5:58 ` Dave Young
2018-03-02 6:11 ` Dave Young
2018-03-02 6:11 ` Dave Young
2018-03-02 6:11 ` Dave Young
2018-03-02 7:26 ` AKASHI Takahiro
2018-03-02 7:26 ` AKASHI Takahiro
2018-03-02 7:26 ` AKASHI Takahiro
2018-02-27 4:48 ` [PATCH 2/7] kexec_file, x86, powerpc: factor out kexec_file_ops functions AKASHI Takahiro
2018-02-27 4:48 ` [PATCH 2/7] kexec_file,x86,powerpc: " AKASHI Takahiro
2018-02-27 4:48 ` [PATCH 2/7] kexec_file, x86, powerpc: " AKASHI Takahiro
2018-03-02 5:04 ` [PATCH 2/7] kexec_file,x86,powerpc: " Dave Young
2018-03-02 5:04 ` Dave Young
2018-03-02 5:04 ` Dave Young
2018-03-02 5:24 ` AKASHI Takahiro
2018-03-02 5:24 ` AKASHI Takahiro
2018-03-02 5:24 ` AKASHI Takahiro
2018-03-02 5:53 ` Dave Young
2018-03-02 5:53 ` Dave Young
2018-03-02 5:53 ` Dave Young
2018-03-02 6:08 ` Dave Young
2018-03-02 6:08 ` Dave Young
2018-03-02 6:08 ` Dave Young
2018-03-02 7:16 ` AKASHI Takahiro
2018-03-02 7:16 ` AKASHI Takahiro
2018-03-02 7:16 ` AKASHI Takahiro
2018-03-02 7:56 ` Dave Young
2018-03-02 7:56 ` Dave Young
2018-03-02 7:56 ` Dave Young
2018-02-27 4:48 ` [PATCH 3/7] x86: kexec_file: purge system-ram walking from prepare_elf64_headers() AKASHI Takahiro
2018-02-27 4:48 ` AKASHI Takahiro
2018-02-27 4:48 ` AKASHI Takahiro
2018-02-27 4:48 ` [PATCH 4/7] x86: kexec_file: remove X86_64 dependency " AKASHI Takahiro
2018-02-27 4:48 ` AKASHI Takahiro
2018-02-27 4:48 ` AKASHI Takahiro
2018-03-02 5:19 ` Dave Young
2018-03-02 5:19 ` Dave Young
2018-03-02 5:19 ` Dave Young
2018-03-02 5:33 ` AKASHI Takahiro [this message]
2018-03-02 5:33 ` AKASHI Takahiro
2018-03-02 5:33 ` AKASHI Takahiro
2018-02-27 4:48 ` [PATCH 5/7] x86: kexec_file: lift CRASH_MAX_RANGES limit on crash_mem buffer AKASHI Takahiro
2018-02-27 4:48 ` AKASHI Takahiro
2018-02-27 4:48 ` AKASHI Takahiro
2018-03-02 5:31 ` Dave Young
2018-03-02 5:31 ` Dave Young
2018-03-02 5:31 ` Dave Young
2018-03-02 5:36 ` AKASHI Takahiro
2018-03-02 5:36 ` AKASHI Takahiro
2018-03-02 5:36 ` AKASHI Takahiro
2018-02-27 4:48 ` [PATCH 6/7] x86: kexec_file: clean up prepare_elf64_headers() AKASHI Takahiro
2018-02-27 4:48 ` AKASHI Takahiro
2018-02-27 4:48 ` AKASHI Takahiro
2018-03-02 5:39 ` Dave Young
2018-03-02 5:39 ` Dave Young
2018-03-02 5:39 ` Dave Young
2018-03-02 5:58 ` AKASHI Takahiro
2018-03-02 5:58 ` AKASHI Takahiro
2018-03-02 5:58 ` AKASHI Takahiro
2018-03-02 6:04 ` Dave Young
2018-03-02 6:04 ` Dave Young
2018-03-02 6:04 ` Dave Young
2018-02-27 4:48 ` [PATCH 7/7] kexec_file, x86: move re-factored code to generic side AKASHI Takahiro
2018-02-27 4:48 ` AKASHI Takahiro
2018-02-27 4:48 ` AKASHI Takahiro
2018-03-02 5:56 ` [PATCH 0/7] kexec_file: refactoring for other architecutres Dave Young
2018-03-02 5:56 ` Dave Young
2018-03-02 5:56 ` Dave Young
2018-03-05 2:36 ` Dave Young
2018-03-05 2:36 ` Dave Young
2018-03-05 2:36 ` Dave Young
2018-03-06 10:28 ` AKASHI Takahiro
2018-03-06 10:28 ` AKASHI Takahiro
2018-03-06 10:28 ` AKASHI Takahiro
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=20180302053325.GO6019@linaro.org \
--to=takahiro.akashi@linaro.org \
--cc=bauerman@linux.vnet.ibm.com \
--cc=bhe@redhat.com \
--cc=dyoung@redhat.com \
--cc=kexec@lists.infradead.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=mpe@ellerman.id.au \
--cc=prudo@linux.vnet.ibm.com \
--cc=vgoyal@redhat.com \
/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.