linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] powerpc: Use common error handling code in setup_new_fdt()
@ 2018-03-11  8:16 SF Markus Elfring
  2018-03-14 21:22 ` Thiago Jung Bauermann
  2018-08-13 11:22 ` Michael Ellerman
  0 siblings, 2 replies; 9+ messages in thread
From: SF Markus Elfring @ 2018-03-11  8:16 UTC (permalink / raw)
  To: linuxppc-dev, Benjamin Herrenschmidt, Borislav Petkov,
	Brijesh Singh, Josh Sklar, Kees Cook, Michael Ellerman,
	Paul Mackerras, Thiago Jung Bauermann, Thomas Gleixner,
	Tom Lendacky
  Cc: LKML, kernel-janitors

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Sun, 11 Mar 2018 09:03:42 +0100

Add a jump target so that a bit of exception handling can be better reused
at the end of this function.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 arch/powerpc/kernel/machine_kexec_file_64.c | 28 ++++++++++++----------------
 1 file changed, 12 insertions(+), 16 deletions(-)

diff --git a/arch/powerpc/kernel/machine_kexec_file_64.c b/arch/powerpc/kernel/machine_kexec_file_64.c
index e4395f937d63..90c6004c2eec 100644
--- a/arch/powerpc/kernel/machine_kexec_file_64.c
+++ b/arch/powerpc/kernel/machine_kexec_file_64.c
@@ -302,18 +302,14 @@ int setup_new_fdt(const struct kimage *image, void *fdt,
 		ret = fdt_setprop_u64(fdt, chosen_node,
 				      "linux,initrd-start",
 				      initrd_load_addr);
-		if (ret < 0) {
-			pr_err("Error setting up the new device tree.\n");
-			return -EINVAL;
-		}
+		if (ret < 0)
+			goto report_setup_failure;
 
 		/* initrd-end is the first address after the initrd image. */
 		ret = fdt_setprop_u64(fdt, chosen_node, "linux,initrd-end",
 				      initrd_load_addr + initrd_len);
-		if (ret < 0) {
-			pr_err("Error setting up the new device tree.\n");
-			return -EINVAL;
-		}
+		if (ret < 0)
+			goto report_setup_failure;
 
 		ret = fdt_add_mem_rsv(fdt, initrd_load_addr, initrd_len);
 		if (ret) {
@@ -325,10 +321,8 @@ int setup_new_fdt(const struct kimage *image, void *fdt,
 
 	if (cmdline != NULL) {
 		ret = fdt_setprop_string(fdt, chosen_node, "bootargs", cmdline);
-		if (ret < 0) {
-			pr_err("Error setting up the new device tree.\n");
-			return -EINVAL;
-		}
+		if (ret < 0)
+			goto report_setup_failure;
 	} else {
 		ret = fdt_delprop(fdt, chosen_node, "bootargs");
 		if (ret && ret != -FDT_ERR_NOTFOUND) {
@@ -344,10 +338,12 @@ int setup_new_fdt(const struct kimage *image, void *fdt,
 	}
 
 	ret = fdt_setprop(fdt, chosen_node, "linux,booted-from-kexec", NULL, 0);
-	if (ret) {
-		pr_err("Error setting up the new device tree.\n");
-		return -EINVAL;
-	}
+	if (ret)
+		goto report_setup_failure;
 
 	return 0;
+
+report_setup_failure:
+	pr_err("Error setting up the new device tree.\n");
+	return -EINVAL;
 }
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH] powerpc: Use common error handling code in setup_new_fdt()
  2018-03-11  8:16 [PATCH] powerpc: Use common error handling code in setup_new_fdt() SF Markus Elfring
@ 2018-03-14 21:22 ` Thiago Jung Bauermann
  2018-03-15 11:57   ` Dan Carpenter
  2018-08-13 11:22 ` Michael Ellerman
  1 sibling, 1 reply; 9+ messages in thread
From: Thiago Jung Bauermann @ 2018-03-14 21:22 UTC (permalink / raw)
  To: SF Markus Elfring
  Cc: linuxppc-dev, Benjamin Herrenschmidt, Borislav Petkov,
	Brijesh Singh, Josh Sklar, Kees Cook, Michael Ellerman,
	Paul Mackerras, Thomas Gleixner, Tom Lendacky, LKML,
	kernel-janitors


SF Markus Elfring <elfring@users.sourceforge.net> writes:

> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Sun, 11 Mar 2018 09:03:42 +0100
>
> Add a jump target so that a bit of exception handling can be better reused
> at the end of this function.
>
> This issue was detected by using the Coccinelle software.
>
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
> ---
>  arch/powerpc/kernel/machine_kexec_file_64.c | 28 ++++++++++++----------------
>  1 file changed, 12 insertions(+), 16 deletions(-)

I liked it. Thanks!

Reviewed-by: Thiago Jung Bauermann <bauerman@linux.vnet.ibm.com>

-- 
Thiago Jung Bauermann
IBM Linux Technology Center

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] powerpc: Use common error handling code in setup_new_fdt()
  2018-03-14 21:22 ` Thiago Jung Bauermann
@ 2018-03-15 11:57   ` Dan Carpenter
  2018-03-15 15:03     ` Joe Perches
  2018-03-16 10:26     ` Michael Ellerman
  0 siblings, 2 replies; 9+ messages in thread
From: Dan Carpenter @ 2018-03-15 11:57 UTC (permalink / raw)
  To: Thiago Jung Bauermann
  Cc: SF Markus Elfring, linuxppc-dev, Benjamin Herrenschmidt,
	Borislav Petkov, Brijesh Singh, Josh Sklar, Kees Cook,
	Michael Ellerman, Paul Mackerras, Thomas Gleixner, Tom Lendacky,
	LKML, kernel-janitors

On Wed, Mar 14, 2018 at 06:22:07PM -0300, Thiago Jung Bauermann wrote:
> 
> SF Markus Elfring <elfring@users.sourceforge.net> writes:
> 
> > From: Markus Elfring <elfring@users.sourceforge.net>
> > Date: Sun, 11 Mar 2018 09:03:42 +0100
> >
> > Add a jump target so that a bit of exception handling can be better reused
> > at the end of this function.
> >
> > This issue was detected by using the Coccinelle software.
> >
> > Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
> > ---
> >  arch/powerpc/kernel/machine_kexec_file_64.c | 28 ++++++++++++----------------
> >  1 file changed, 12 insertions(+), 16 deletions(-)
> 
> I liked it. Thanks!
> 
> Reviewed-by: Thiago Jung Bauermann <bauerman@linux.vnet.ibm.com>
> 

You know that compilers already re-use string constants so this doesn't
actually save memory?  Also we should be preserving the error codes
instead of always returning -EINVAL.

regards,
dan carpenter

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] powerpc: Use common error handling code in setup_new_fdt()
  2018-03-15 11:57   ` Dan Carpenter
@ 2018-03-15 15:03     ` Joe Perches
  2018-03-15 18:34       ` Thiago Jung Bauermann
  2018-03-16 10:29       ` Michael Ellerman
  2018-03-16 10:26     ` Michael Ellerman
  1 sibling, 2 replies; 9+ messages in thread
From: Joe Perches @ 2018-03-15 15:03 UTC (permalink / raw)
  To: Dan Carpenter, Thiago Jung Bauermann
  Cc: SF Markus Elfring, linuxppc-dev, Benjamin Herrenschmidt,
	Borislav Petkov, Brijesh Singh, Josh Sklar, Kees Cook,
	Michael Ellerman, Paul Mackerras, Thomas Gleixner, Tom Lendacky,
	LKML, kernel-janitors

On Thu, 2018-03-15 at 14:57 +0300, Dan Carpenter wrote:
> On Wed, Mar 14, 2018 at 06:22:07PM -0300, Thiago Jung Bauermann wrote:
> > 
> > SF Markus Elfring <elfring@users.sourceforge.net> writes:
> > 
> > > From: Markus Elfring <elfring@users.sourceforge.net>
> > > Date: Sun, 11 Mar 2018 09:03:42 +0100
> > > 
> > > Add a jump target so that a bit of exception handling can be better reused
> > > at the end of this function.
> > > 
> > > This issue was detected by using the Coccinelle software.
> > > 
> > > Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
> > > ---
> > >  arch/powerpc/kernel/machine_kexec_file_64.c | 28 ++++++++++++----------------
> > >  1 file changed, 12 insertions(+), 16 deletions(-)
> > 
> > I liked it. Thanks!
> > 
> > Reviewed-by: Thiago Jung Bauermann <bauerman@linux.vnet.ibm.com>
> > 
> 
> You know that compilers already re-use string constants so this doesn't
> actually save memory?

And modern compilers create their own jump labels
so this doesn't change object code either?

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] powerpc: Use common error handling code in setup_new_fdt()
  2018-03-15 15:03     ` Joe Perches
@ 2018-03-15 18:34       ` Thiago Jung Bauermann
  2018-03-16 10:29       ` Michael Ellerman
  1 sibling, 0 replies; 9+ messages in thread
From: Thiago Jung Bauermann @ 2018-03-15 18:34 UTC (permalink / raw)
  To: Joe Perches
  Cc: Dan Carpenter, SF Markus Elfring, linuxppc-dev,
	Benjamin Herrenschmidt, Borislav Petkov, Brijesh Singh,
	Josh Sklar, Kees Cook, Michael Ellerman, Paul Mackerras,
	Thomas Gleixner, Tom Lendacky, LKML, kernel-janitors


Joe Perches <joe@perches.com> writes:

> On Thu, 2018-03-15 at 14:57 +0300, Dan Carpenter wrote:
>> On Wed, Mar 14, 2018 at 06:22:07PM -0300, Thiago Jung Bauermann wrote:
>> > 
>> > SF Markus Elfring <elfring@users.sourceforge.net> writes:
>> > 
>> > > From: Markus Elfring <elfring@users.sourceforge.net>
>> > > Date: Sun, 11 Mar 2018 09:03:42 +0100
>> > > 
>> > > Add a jump target so that a bit of exception handling can be better reused
>> > > at the end of this function.
>> > > 
>> > > This issue was detected by using the Coccinelle software.
>> > > 
>> > > Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
>> > > ---
>> > >  arch/powerpc/kernel/machine_kexec_file_64.c | 28 ++++++++++++----------------
>> > >  1 file changed, 12 insertions(+), 16 deletions(-)
>> > 
>> > I liked it. Thanks!
>> > 
>> > Reviewed-by: Thiago Jung Bauermann <bauerman@linux.vnet.ibm.com>
>> > 
>> 
>> You know that compilers already re-use string constants so this doesn't
>> actually save memory?
>
> And modern compilers create their own jump labels
> so this doesn't change object code either?

IMHO it's an improvement to the source code itself. I wasn't thinking
about the object file.

-- 
Thiago Jung Bauermann
IBM Linux Technology Center

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] powerpc: Use common error handling code in setup_new_fdt()
  2018-03-15 11:57   ` Dan Carpenter
  2018-03-15 15:03     ` Joe Perches
@ 2018-03-16 10:26     ` Michael Ellerman
  2018-03-16 10:35       ` Dan Carpenter
  1 sibling, 1 reply; 9+ messages in thread
From: Michael Ellerman @ 2018-03-16 10:26 UTC (permalink / raw)
  To: Dan Carpenter, Thiago Jung Bauermann
  Cc: SF Markus Elfring, linuxppc-dev, Benjamin Herrenschmidt,
	Borislav Petkov, Brijesh Singh, Josh Sklar, Kees Cook,
	Paul Mackerras, Thomas Gleixner, Tom Lendacky, LKML,
	kernel-janitors

Dan Carpenter <dan.carpenter@oracle.com> writes:
> On Wed, Mar 14, 2018 at 06:22:07PM -0300, Thiago Jung Bauermann wrote:
>> SF Markus Elfring <elfring@users.sourceforge.net> writes:
>> > From: Markus Elfring <elfring@users.sourceforge.net>
>> > Date: Sun, 11 Mar 2018 09:03:42 +0100
>> >
>> > Add a jump target so that a bit of exception handling can be better reused
>> > at the end of this function.
>> >
>> > This issue was detected by using the Coccinelle software.
>> >
>> > Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
>> > ---
>> >  arch/powerpc/kernel/machine_kexec_file_64.c | 28 ++++++++++++----------------
>> >  1 file changed, 12 insertions(+), 16 deletions(-)
>> 
>> I liked it. Thanks!
>> 
>> Reviewed-by: Thiago Jung Bauermann <bauerman@linux.vnet.ibm.com>
>
> You know that compilers already re-use string constants so this doesn't
> actually save memory?

Sure, but it's still clearer to only have the string appear once in the
code.

> Also we should be preserving the error codes
> instead of always returning -EINVAL.

The error codes come from libfdt code, so they don't necessarily make
sense in the kernel. eg. FDT_ERR_NOSPACE == 3 == ESRCH.

Perhaps we should be trying harder to convert them, but that's a
criticism of the original code not this patch.

cheers

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] powerpc: Use common error handling code in setup_new_fdt()
  2018-03-15 15:03     ` Joe Perches
  2018-03-15 18:34       ` Thiago Jung Bauermann
@ 2018-03-16 10:29       ` Michael Ellerman
  1 sibling, 0 replies; 9+ messages in thread
From: Michael Ellerman @ 2018-03-16 10:29 UTC (permalink / raw)
  To: Joe Perches, Dan Carpenter, Thiago Jung Bauermann
  Cc: SF Markus Elfring, linuxppc-dev, Benjamin Herrenschmidt,
	Borislav Petkov, Brijesh Singh, Josh Sklar, Kees Cook,
	Paul Mackerras, Thomas Gleixner, Tom Lendacky, LKML,
	kernel-janitors

Joe Perches <joe@perches.com> writes:
> On Thu, 2018-03-15 at 14:57 +0300, Dan Carpenter wrote:
>> On Wed, Mar 14, 2018 at 06:22:07PM -0300, Thiago Jung Bauermann wrote:
>> > SF Markus Elfring <elfring@users.sourceforge.net> writes:
>> > > From: Markus Elfring <elfring@users.sourceforge.net>
>> > > Date: Sun, 11 Mar 2018 09:03:42 +0100
>> > > 
>> > > Add a jump target so that a bit of exception handling can be better reused
>> > > at the end of this function.
>> > > 
>> > > This issue was detected by using the Coccinelle software.
>> > > 
>> > > Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
>> > > ---
>> > >  arch/powerpc/kernel/machine_kexec_file_64.c | 28 ++++++++++++----------------
>> > >  1 file changed, 12 insertions(+), 16 deletions(-)
>> > 
>> > I liked it. Thanks!
>> > 
>> > Reviewed-by: Thiago Jung Bauermann <bauerman@linux.vnet.ibm.com>
>> 
>> You know that compilers already re-use string constants so this doesn't
>> actually save memory?
>
> And modern compilers create their own jump labels
> so this doesn't change object code either?

I must have missed the memo about us only changing source code if it
results in better object code.

cheers

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] powerpc: Use common error handling code in setup_new_fdt()
  2018-03-16 10:26     ` Michael Ellerman
@ 2018-03-16 10:35       ` Dan Carpenter
  0 siblings, 0 replies; 9+ messages in thread
From: Dan Carpenter @ 2018-03-16 10:35 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Thiago Jung Bauermann, SF Markus Elfring, linuxppc-dev,
	Benjamin Herrenschmidt, Borislav Petkov, Brijesh Singh,
	Josh Sklar, Kees Cook, Paul Mackerras, Thomas Gleixner,
	Tom Lendacky, LKML, kernel-janitors

On Fri, Mar 16, 2018 at 09:26:53PM +1100, Michael Ellerman wrote:
> Dan Carpenter <dan.carpenter@oracle.com> writes:
> > On Wed, Mar 14, 2018 at 06:22:07PM -0300, Thiago Jung Bauermann wrote:
> >> SF Markus Elfring <elfring@users.sourceforge.net> writes:
> >> > From: Markus Elfring <elfring@users.sourceforge.net>
> >> > Date: Sun, 11 Mar 2018 09:03:42 +0100
> >> >
> >> > Add a jump target so that a bit of exception handling can be better reused
> >> > at the end of this function.
> >> >
> >> > This issue was detected by using the Coccinelle software.
> >> >
> >> > Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
> >> > ---
> >> >  arch/powerpc/kernel/machine_kexec_file_64.c | 28 ++++++++++++----------------
> >> >  1 file changed, 12 insertions(+), 16 deletions(-)
> >> 
> >> I liked it. Thanks!
> >> 
> >> Reviewed-by: Thiago Jung Bauermann <bauerman@linux.vnet.ibm.com>
> >
> > You know that compilers already re-use string constants so this doesn't
> > actually save memory?
> 
> Sure, but it's still clearer to only have the string appear once in the
> code.
> 

To me the original was better.

> > Also we should be preserving the error codes
> > instead of always returning -EINVAL.
> 
> The error codes come from libfdt code, so they don't necessarily make
> sense in the kernel. eg. FDT_ERR_NOSPACE == 3 == ESRCH.
> 
> Perhaps we should be trying harder to convert them, but that's a
> criticism of the original code not this patch.

Ah.  You're right.  I look at the patch in context, sorry.

regards,
dan carpenter

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: powerpc: Use common error handling code in setup_new_fdt()
  2018-03-11  8:16 [PATCH] powerpc: Use common error handling code in setup_new_fdt() SF Markus Elfring
  2018-03-14 21:22 ` Thiago Jung Bauermann
@ 2018-08-13 11:22 ` Michael Ellerman
  1 sibling, 0 replies; 9+ messages in thread
From: Michael Ellerman @ 2018-08-13 11:22 UTC (permalink / raw)
  To: SF Markus Elfring, linuxppc-dev, Benjamin Herrenschmidt,
	Borislav Petkov, Brijesh Singh, Josh Sklar, Kees Cook,
	Paul Mackerras, Thiago Jung Bauermann, Thomas Gleixner,
	Tom Lendacky
  Cc: kernel-janitors, LKML

On Sun, 2018-03-11 at 08:16:47 UTC, SF Markus Elfring wrote:
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Sun, 11 Mar 2018 09:03:42 +0100
> 
> Add a jump target so that a bit of exception handling can be better reused
> at the end of this function.
> 
> This issue was detected by using the Coccinelle software.
> 
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
> Reviewed-by: Thiago Jung Bauermann <bauerman@linux.vnet.ibm.com>

Applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/baedcdf5054c151a33e34392af7d8c

cheers

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2018-08-13 11:24 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-11  8:16 [PATCH] powerpc: Use common error handling code in setup_new_fdt() SF Markus Elfring
2018-03-14 21:22 ` Thiago Jung Bauermann
2018-03-15 11:57   ` Dan Carpenter
2018-03-15 15:03     ` Joe Perches
2018-03-15 18:34       ` Thiago Jung Bauermann
2018-03-16 10:29       ` Michael Ellerman
2018-03-16 10:26     ` Michael Ellerman
2018-03-16 10:35       ` Dan Carpenter
2018-08-13 11:22 ` Michael Ellerman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).