All of lore.kernel.org
 help / color / mirror / Atom feed
From: AKASHI Takahiro <takahiro.akashi@linaro.org>
To: Dave Young <dyoung@redhat.com>
Cc: catalin.marinas@arm.com, will.deacon@arm.com,
	bauerman@linux.vnet.ibm.com, dhowells@redhat.com,
	vgoyal@redhat.com, herbert@gondor.apana.org.au,
	davem@davemloft.net, akpm@linux-foundation.org,
	mpe@ellerman.id.au, bhe@redhat.com, arnd@arndb.de,
	ard.biesheuvel@linaro.org, julien.thierry@arm.com,
	kexec@lists.infradead.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v8 03/13] kexec_file,x86,powerpc: factor out kexec_file_ops functions
Date: Mon, 26 Feb 2018 19:01:39 +0900	[thread overview]
Message-ID: <20180226100138.GC6019@linaro.org> (raw)
In-Reply-To: <20180223092459.GC4433@dhcp-128-65.nay.redhat.com>

On Fri, Feb 23, 2018 at 05:24:59PM +0800, Dave Young wrote:
> Hi AKASHI,
> 
> On 02/22/18 at 08:17pm, AKASHI Takahiro wrote:
> > As arch_kexec_kernel_*_{probe,load}(), arch_kimage_file_post_load_cleanup()
> > and arch_kexec_kernel_verify_sg can be parameterized with a kexec_file_ops
> > array and now duplicated among some architectures, let's factor them out.
> > 
> > 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>
> > Cc: Michael Ellerman <mpe@ellerman.id.au>
> > Cc: Thiago Jung Bauermann <bauerman@linux.vnet.ibm.com>
> > ---
> >  arch/powerpc/include/asm/kexec.h            |  2 +-
> >  arch/powerpc/kernel/kexec_elf_64.c          |  2 +-
> >  arch/powerpc/kernel/machine_kexec_file_64.c | 39 ++------------------
> >  arch/x86/include/asm/kexec-bzimage64.h      |  2 +-
> >  arch/x86/kernel/kexec-bzimage64.c           |  2 +-
> >  arch/x86/kernel/machine_kexec_64.c          | 45 +----------------------
> >  include/linux/kexec.h                       | 15 ++++----
> >  kernel/kexec_file.c                         | 57 +++++++++++++++++++++++++++--
> >  8 files changed, 70 insertions(+), 94 deletions(-)
> > 
> 
> [snip]
> 
> > diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c
> > index 990adae52151..a6d14a768b3e 100644
> > --- a/kernel/kexec_file.c
> > +++ b/kernel/kexec_file.c
> > @@ -26,34 +26,83 @@
> >  #include <linux/vmalloc.h>
> >  #include "kexec_internal.h"
> >  
> > +const __weak struct kexec_file_ops * const kexec_file_loaders[] = {NULL};
> > +
> >  #ifdef CONFIG_ARCH_HAS_KEXEC_PURGATORY
> >  static int kexec_calculate_store_digests(struct kimage *image);
> >  #else
> >  static int kexec_calculate_store_digests(struct kimage *image) { return 0; };
> >  #endif
> >  
> > +int _kexec_kernel_image_probe(struct kimage *image, void *buf,
> > +			     unsigned long buf_len)
> > +{
> > +	const struct kexec_file_ops * const *fops;
> > +	int ret = -ENOEXEC;
> > +
> > +	for (fops = &kexec_file_loaders[0]; *fops && (*fops)->probe; ++fops) {
> > +		ret = (*fops)->probe(buf, buf_len);
> > +		if (!ret) {
> > +			image->fops = *fops;
> > +			return ret;
> > +		}
> > +	}
> > +
> > +	return ret;
> > +}
> > +
> >  /* Architectures can provide this probe function */
> >  int __weak arch_kexec_kernel_image_probe(struct kimage *image, void *buf,
> >  					 unsigned long buf_len)
> >  {
> > -	return -ENOEXEC;
> > +	return _kexec_kernel_image_probe(image, buf, buf_len);
> 
> 
> I vaguely remember previously I suggest split the _kexec_kernel_image_probe
> because arch code can call them, and common code also use it like above.
> But in your new series I do not find where else calls this function
> except the common code arch_kexec_kernel_image_probe.  If nobody use
> them then it is not worth to split them out, it is better to just embed
> them in the __weak functions.

Powerpc's arch_kexec_kernel_image_probe() uses
_kexec_kekrnel_image_probe() as it needs an extra check to rule out
crash dump for now.

Thanks,
-Takahiro AKASHI


> Ditto for other similar functions.
> 
> [snip]
> 
> Thanks
> Dave

WARNING: multiple messages have this Message-ID (diff)
From: takahiro.akashi@linaro.org (AKASHI Takahiro)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v8 03/13] kexec_file,x86,powerpc: factor out kexec_file_ops functions
Date: Mon, 26 Feb 2018 19:01:39 +0900	[thread overview]
Message-ID: <20180226100138.GC6019@linaro.org> (raw)
In-Reply-To: <20180223092459.GC4433@dhcp-128-65.nay.redhat.com>

On Fri, Feb 23, 2018 at 05:24:59PM +0800, Dave Young wrote:
> Hi AKASHI,
> 
> On 02/22/18 at 08:17pm, AKASHI Takahiro wrote:
> > As arch_kexec_kernel_*_{probe,load}(), arch_kimage_file_post_load_cleanup()
> > and arch_kexec_kernel_verify_sg can be parameterized with a kexec_file_ops
> > array and now duplicated among some architectures, let's factor them out.
> > 
> > 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>
> > Cc: Michael Ellerman <mpe@ellerman.id.au>
> > Cc: Thiago Jung Bauermann <bauerman@linux.vnet.ibm.com>
> > ---
> >  arch/powerpc/include/asm/kexec.h            |  2 +-
> >  arch/powerpc/kernel/kexec_elf_64.c          |  2 +-
> >  arch/powerpc/kernel/machine_kexec_file_64.c | 39 ++------------------
> >  arch/x86/include/asm/kexec-bzimage64.h      |  2 +-
> >  arch/x86/kernel/kexec-bzimage64.c           |  2 +-
> >  arch/x86/kernel/machine_kexec_64.c          | 45 +----------------------
> >  include/linux/kexec.h                       | 15 ++++----
> >  kernel/kexec_file.c                         | 57 +++++++++++++++++++++++++++--
> >  8 files changed, 70 insertions(+), 94 deletions(-)
> > 
> 
> [snip]
> 
> > diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c
> > index 990adae52151..a6d14a768b3e 100644
> > --- a/kernel/kexec_file.c
> > +++ b/kernel/kexec_file.c
> > @@ -26,34 +26,83 @@
> >  #include <linux/vmalloc.h>
> >  #include "kexec_internal.h"
> >  
> > +const __weak struct kexec_file_ops * const kexec_file_loaders[] = {NULL};
> > +
> >  #ifdef CONFIG_ARCH_HAS_KEXEC_PURGATORY
> >  static int kexec_calculate_store_digests(struct kimage *image);
> >  #else
> >  static int kexec_calculate_store_digests(struct kimage *image) { return 0; };
> >  #endif
> >  
> > +int _kexec_kernel_image_probe(struct kimage *image, void *buf,
> > +			     unsigned long buf_len)
> > +{
> > +	const struct kexec_file_ops * const *fops;
> > +	int ret = -ENOEXEC;
> > +
> > +	for (fops = &kexec_file_loaders[0]; *fops && (*fops)->probe; ++fops) {
> > +		ret = (*fops)->probe(buf, buf_len);
> > +		if (!ret) {
> > +			image->fops = *fops;
> > +			return ret;
> > +		}
> > +	}
> > +
> > +	return ret;
> > +}
> > +
> >  /* Architectures can provide this probe function */
> >  int __weak arch_kexec_kernel_image_probe(struct kimage *image, void *buf,
> >  					 unsigned long buf_len)
> >  {
> > -	return -ENOEXEC;
> > +	return _kexec_kernel_image_probe(image, buf, buf_len);
> 
> 
> I vaguely remember previously I suggest split the _kexec_kernel_image_probe
> because arch code can call them, and common code also use it like above.
> But in your new series I do not find where else calls this function
> except the common code arch_kexec_kernel_image_probe.  If nobody use
> them then it is not worth to split them out, it is better to just embed
> them in the __weak functions.

Powerpc's arch_kexec_kernel_image_probe() uses
_kexec_kekrnel_image_probe() as it needs an extra check to rule out
crash dump for now.

Thanks,
-Takahiro AKASHI


> Ditto for other similar functions.
> 
> [snip]
> 
> Thanks
> Dave

WARNING: multiple messages have this Message-ID (diff)
From: AKASHI Takahiro <takahiro.akashi@linaro.org>
To: Dave Young <dyoung@redhat.com>
Cc: herbert@gondor.apana.org.au, bhe@redhat.com,
	ard.biesheuvel@linaro.org, catalin.marinas@arm.com,
	julien.thierry@arm.com, will.deacon@arm.com,
	linux-kernel@vger.kernel.org, kexec@lists.infradead.org,
	dhowells@redhat.com, arnd@arndb.de,
	linux-arm-kernel@lists.infradead.org, mpe@ellerman.id.au,
	bauerman@linux.vnet.ibm.com, akpm@linux-foundation.org,
	davem@davemloft.net, vgoyal@redhat.com
Subject: Re: [PATCH v8 03/13] kexec_file,x86,powerpc: factor out kexec_file_ops functions
Date: Mon, 26 Feb 2018 19:01:39 +0900	[thread overview]
Message-ID: <20180226100138.GC6019@linaro.org> (raw)
In-Reply-To: <20180223092459.GC4433@dhcp-128-65.nay.redhat.com>

On Fri, Feb 23, 2018 at 05:24:59PM +0800, Dave Young wrote:
> Hi AKASHI,
> 
> On 02/22/18 at 08:17pm, AKASHI Takahiro wrote:
> > As arch_kexec_kernel_*_{probe,load}(), arch_kimage_file_post_load_cleanup()
> > and arch_kexec_kernel_verify_sg can be parameterized with a kexec_file_ops
> > array and now duplicated among some architectures, let's factor them out.
> > 
> > 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>
> > Cc: Michael Ellerman <mpe@ellerman.id.au>
> > Cc: Thiago Jung Bauermann <bauerman@linux.vnet.ibm.com>
> > ---
> >  arch/powerpc/include/asm/kexec.h            |  2 +-
> >  arch/powerpc/kernel/kexec_elf_64.c          |  2 +-
> >  arch/powerpc/kernel/machine_kexec_file_64.c | 39 ++------------------
> >  arch/x86/include/asm/kexec-bzimage64.h      |  2 +-
> >  arch/x86/kernel/kexec-bzimage64.c           |  2 +-
> >  arch/x86/kernel/machine_kexec_64.c          | 45 +----------------------
> >  include/linux/kexec.h                       | 15 ++++----
> >  kernel/kexec_file.c                         | 57 +++++++++++++++++++++++++++--
> >  8 files changed, 70 insertions(+), 94 deletions(-)
> > 
> 
> [snip]
> 
> > diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c
> > index 990adae52151..a6d14a768b3e 100644
> > --- a/kernel/kexec_file.c
> > +++ b/kernel/kexec_file.c
> > @@ -26,34 +26,83 @@
> >  #include <linux/vmalloc.h>
> >  #include "kexec_internal.h"
> >  
> > +const __weak struct kexec_file_ops * const kexec_file_loaders[] = {NULL};
> > +
> >  #ifdef CONFIG_ARCH_HAS_KEXEC_PURGATORY
> >  static int kexec_calculate_store_digests(struct kimage *image);
> >  #else
> >  static int kexec_calculate_store_digests(struct kimage *image) { return 0; };
> >  #endif
> >  
> > +int _kexec_kernel_image_probe(struct kimage *image, void *buf,
> > +			     unsigned long buf_len)
> > +{
> > +	const struct kexec_file_ops * const *fops;
> > +	int ret = -ENOEXEC;
> > +
> > +	for (fops = &kexec_file_loaders[0]; *fops && (*fops)->probe; ++fops) {
> > +		ret = (*fops)->probe(buf, buf_len);
> > +		if (!ret) {
> > +			image->fops = *fops;
> > +			return ret;
> > +		}
> > +	}
> > +
> > +	return ret;
> > +}
> > +
> >  /* Architectures can provide this probe function */
> >  int __weak arch_kexec_kernel_image_probe(struct kimage *image, void *buf,
> >  					 unsigned long buf_len)
> >  {
> > -	return -ENOEXEC;
> > +	return _kexec_kernel_image_probe(image, buf, buf_len);
> 
> 
> I vaguely remember previously I suggest split the _kexec_kernel_image_probe
> because arch code can call them, and common code also use it like above.
> But in your new series I do not find where else calls this function
> except the common code arch_kexec_kernel_image_probe.  If nobody use
> them then it is not worth to split them out, it is better to just embed
> them in the __weak functions.

Powerpc's arch_kexec_kernel_image_probe() uses
_kexec_kekrnel_image_probe() as it needs an extra check to rule out
crash dump for now.

Thanks,
-Takahiro AKASHI


> Ditto for other similar functions.
> 
> [snip]
> 
> Thanks
> Dave

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

  reply	other threads:[~2018-02-26 10:01 UTC|newest]

Thread overview: 102+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-22 11:17 [PATCH v8 00/13] arm64: kexec: add kexec_file_load() support AKASHI Takahiro
2018-02-22 11:17 ` AKASHI Takahiro
2018-02-22 11:17 ` AKASHI Takahiro
2018-02-22 11:17 ` [PATCH v8 01/13] resource: add walk_system_ram_res_rev() AKASHI Takahiro
2018-02-22 11:17   ` AKASHI Takahiro
2018-02-22 11:17   ` AKASHI Takahiro
2018-02-23  8:36   ` Dave Young
2018-02-23  8:36     ` Dave Young
2018-02-23  8:36     ` Dave Young
2018-03-20  1:43     ` Baoquan He
2018-03-20  1:43       ` Baoquan He
2018-03-20  1:43       ` Baoquan He
2018-03-20  3:12       ` AKASHI Takahiro
2018-03-20  3:12         ` AKASHI Takahiro
2018-03-20  3:12         ` AKASHI Takahiro
2018-03-20  3:48         ` Baoquan He
2018-03-20  3:48           ` Baoquan He
2018-03-20  3:48           ` Baoquan He
2018-02-22 11:17 ` [PATCH v8 02/13] kexec_file: make an use of purgatory optional AKASHI Takahiro
2018-02-22 11:17   ` AKASHI Takahiro
2018-02-22 11:17   ` AKASHI Takahiro
2018-02-23  8:49   ` Dave Young
2018-02-23  8:49     ` Dave Young
2018-02-23  8:49     ` Dave Young
2018-02-26 10:24     ` AKASHI Takahiro
2018-02-26 10:24       ` AKASHI Takahiro
2018-02-26 10:24       ` AKASHI Takahiro
2018-02-28 12:33       ` Dave Young
2018-02-28 12:33         ` Dave Young
2018-02-28 12:33         ` Dave Young
2018-03-01  2:59         ` AKASHI Takahiro
2018-03-01  2:59           ` AKASHI Takahiro
2018-03-01  2:59           ` AKASHI Takahiro
2018-02-22 11:17 ` [PATCH v8 03/13] kexec_file,x86,powerpc: factor out kexec_file_ops functions AKASHI Takahiro
2018-02-22 11:17   ` [PATCH v8 03/13] kexec_file, x86, powerpc: " AKASHI Takahiro
2018-02-22 11:17   ` AKASHI Takahiro
2018-02-23  9:24   ` [PATCH v8 03/13] kexec_file,x86,powerpc: " Dave Young
2018-02-23  9:24     ` Dave Young
2018-02-23  9:24     ` Dave Young
2018-02-26 10:01     ` AKASHI Takahiro [this message]
2018-02-26 10:01       ` AKASHI Takahiro
2018-02-26 10:01       ` AKASHI Takahiro
2018-02-26 11:25       ` Philipp Rudo
2018-02-26 11:25         ` Philipp Rudo
2018-02-26 11:25         ` Philipp Rudo
2018-02-28 12:38       ` Dave Young
2018-02-28 12:38         ` Dave Young
2018-02-28 12:38         ` Dave Young
2018-03-01  3:18         ` AKASHI Takahiro
2018-03-01  3:18           ` AKASHI Takahiro
2018-03-01  3:18           ` AKASHI Takahiro
2018-02-26 11:17   ` [PATCH v8 03/13] kexec_file, x86, powerpc: " Philipp Rudo
2018-02-26 11:17     ` Philipp Rudo
2018-02-26 11:17     ` Philipp Rudo
2018-02-27  2:03     ` AKASHI Takahiro
2018-02-27  2:03       ` AKASHI Takahiro
2018-02-27  2:03       ` AKASHI Takahiro
2018-02-27  9:26       ` Philipp Rudo
2018-02-27  9:26         ` Philipp Rudo
2018-02-27  9:26         ` Philipp Rudo
2018-02-22 11:17 ` [PATCH v8 04/13] x86: kexec_file: factor out elf core header related functions AKASHI Takahiro
2018-02-22 11:17   ` AKASHI Takahiro
2018-02-22 11:17   ` AKASHI Takahiro
2018-02-24  3:15   ` Dave Young
2018-02-24  3:15     ` Dave Young
2018-02-24  3:15     ` Dave Young
2018-02-26  9:21     ` AKASHI Takahiro
2018-02-26  9:21       ` AKASHI Takahiro
2018-02-26  9:21       ` AKASHI Takahiro
2018-02-22 11:17 ` [PATCH v8 05/13] kexec_file, x86: move re-factored code to generic side AKASHI Takahiro
2018-02-22 11:17   ` AKASHI Takahiro
2018-02-22 11:17   ` AKASHI Takahiro
2018-02-22 11:17 ` [PATCH v8 06/13] asm-generic: add kexec_file_load system call to unistd.h AKASHI Takahiro
2018-02-22 11:17   ` AKASHI Takahiro
2018-02-22 11:17   ` AKASHI Takahiro
2018-02-22 11:17 ` [PATCH v8 07/13] arm64: kexec_file: invoke the kernel without purgatory AKASHI Takahiro
2018-02-22 11:17   ` AKASHI Takahiro
2018-02-22 11:17   ` AKASHI Takahiro
2018-02-22 11:17 ` [PATCH v8 08/13] arm64: kexec_file: load initrd and device-tree AKASHI Takahiro
2018-02-22 11:17   ` AKASHI Takahiro
2018-02-22 11:17   ` AKASHI Takahiro
2018-02-22 11:17 ` [PATCH v8 09/13] arm64: kexec_file: add crash dump support AKASHI Takahiro
2018-02-22 11:17   ` AKASHI Takahiro
2018-02-22 11:17   ` AKASHI Takahiro
2018-02-22 11:17 ` [PATCH v8 10/13] arm64: kexec_file: add Image format support AKASHI Takahiro
2018-02-22 11:17   ` AKASHI Takahiro
2018-02-22 11:17   ` AKASHI Takahiro
2018-02-22 11:17 ` [PATCH v8 11/13] arm64: kexec_file: enable KEXEC_FILE config AKASHI Takahiro
2018-02-22 11:17   ` AKASHI Takahiro
2018-02-22 11:17   ` AKASHI Takahiro
2018-02-22 11:17 ` [PATCH v8 12/13] include: pe.h: remove message[] from mz header definition AKASHI Takahiro
2018-02-22 11:17   ` AKASHI Takahiro
2018-02-22 11:17   ` AKASHI Takahiro
2018-02-22 11:17 ` [PATCH v8 13/13] arm64: kexec_file: enable KEXEC_VERIFY_SIG for Image AKASHI Takahiro
2018-02-22 11:17   ` AKASHI Takahiro
2018-02-22 11:17   ` AKASHI Takahiro
2018-02-27  4:56 ` [PATCH v8 00/13] arm64: kexec: add kexec_file_load() support AKASHI Takahiro
2018-02-27  4:56   ` AKASHI Takahiro
2018-02-27  4:56   ` AKASHI Takahiro
2018-02-28 12:25   ` Dave Young
2018-02-28 12:25     ` Dave Young
2018-02-28 12:25     ` Dave Young

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=20180226100138.GC6019@linaro.org \
    --to=takahiro.akashi@linaro.org \
    --cc=akpm@linux-foundation.org \
    --cc=ard.biesheuvel@linaro.org \
    --cc=arnd@arndb.de \
    --cc=bauerman@linux.vnet.ibm.com \
    --cc=bhe@redhat.com \
    --cc=catalin.marinas@arm.com \
    --cc=davem@davemloft.net \
    --cc=dhowells@redhat.com \
    --cc=dyoung@redhat.com \
    --cc=herbert@gondor.apana.org.au \
    --cc=julien.thierry@arm.com \
    --cc=kexec@lists.infradead.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mpe@ellerman.id.au \
    --cc=vgoyal@redhat.com \
    --cc=will.deacon@arm.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.