diff mbox series

[v2] powerpc/kexec: Fix build failure from uninitialised variable

Message ID 20220810054331.373761-1-ruscur@russell.cc (mailing list archive)
State Accepted
Headers show
Series [v2] powerpc/kexec: Fix build failure from uninitialised variable | expand

Checks

Context Check Description
snowpatch_ozlabs/github-powerpc_selftests success Successfully ran 10 jobs.
snowpatch_ozlabs/github-powerpc_ppctests success Successfully ran 10 jobs.
snowpatch_ozlabs/github-powerpc_sparse success Successfully ran 4 jobs.
snowpatch_ozlabs/github-powerpc_clang success Successfully ran 6 jobs.
snowpatch_ozlabs/github-powerpc_kernel_qemu success Successfully ran 23 jobs.

Commit Message

Russell Currey Aug. 10, 2022, 5:43 a.m. UTC
clang 14 won't build because ret is uninitialised and can be returned if
both prop and fdtprop are NULL.  Drop the ret variable and return an
error in that failure case.

Fixes: b1fc44eaa9ba ("pseries/iommu/ddw: Fix kdump to work in absence of ibm,dma-window")
Suggested-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Russell Currey <ruscur@russell.cc>
---
v2: adopt Christophe's suggestion, which is better

 arch/powerpc/kexec/file_load_64.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

Comments

Nathan Chancellor Aug. 10, 2022, 4:43 p.m. UTC | #1
On Wed, Aug 10, 2022 at 03:43:31PM +1000, Russell Currey wrote:
> clang 14 won't build because ret is uninitialised and can be returned if
> both prop and fdtprop are NULL.  Drop the ret variable and return an
> error in that failure case.
> 
> Fixes: b1fc44eaa9ba ("pseries/iommu/ddw: Fix kdump to work in absence of ibm,dma-window")
> Suggested-by: Christophe Leroy <christophe.leroy@csgroup.eu>
> Signed-off-by: Russell Currey <ruscur@russell.cc>

Reviewed-by: Nathan Chancellor <nathan@kernel.org>

Thanks for the patch!

> ---
> v2: adopt Christophe's suggestion, which is better
> 
>  arch/powerpc/kexec/file_load_64.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/arch/powerpc/kexec/file_load_64.c b/arch/powerpc/kexec/file_load_64.c
> index 683462e4556b..349a781cea0b 100644
> --- a/arch/powerpc/kexec/file_load_64.c
> +++ b/arch/powerpc/kexec/file_load_64.c
> @@ -1043,17 +1043,17 @@ static int copy_property(void *fdt, int node_offset, const struct device_node *d
>  			 const char *propname)
>  {
>  	const void *prop, *fdtprop;
> -	int len = 0, fdtlen = 0, ret;
> +	int len = 0, fdtlen = 0;
>  
>  	prop = of_get_property(dn, propname, &len);
>  	fdtprop = fdt_getprop(fdt, node_offset, propname, &fdtlen);
>  
>  	if (fdtprop && !prop)
> -		ret = fdt_delprop(fdt, node_offset, propname);
> +		return fdt_delprop(fdt, node_offset, propname);
>  	else if (prop)
> -		ret = fdt_setprop(fdt, node_offset, propname, prop, len);
> -
> -	return ret;
> +		return fdt_setprop(fdt, node_offset, propname, prop, len);
> +	else
> +		return -FDT_ERR_NOTFOUND;
>  }
>  
>  static int update_pci_dma_nodes(void *fdt, const char *dmapropname)
> -- 
> 2.37.1
>
Michael Ellerman Aug. 13, 2022, 10:38 p.m. UTC | #2
On Wed, 10 Aug 2022 15:43:31 +1000, Russell Currey wrote:
> clang 14 won't build because ret is uninitialised and can be returned if
> both prop and fdtprop are NULL.  Drop the ret variable and return an
> error in that failure case.
> 
> 

Applied to powerpc/fixes.

[1/1] powerpc/kexec: Fix build failure from uninitialised variable
      https://git.kernel.org/powerpc/c/83ee9f23763a432a4077bf20624ee35de87bce99

cheers
diff mbox series

Patch

diff --git a/arch/powerpc/kexec/file_load_64.c b/arch/powerpc/kexec/file_load_64.c
index 683462e4556b..349a781cea0b 100644
--- a/arch/powerpc/kexec/file_load_64.c
+++ b/arch/powerpc/kexec/file_load_64.c
@@ -1043,17 +1043,17 @@  static int copy_property(void *fdt, int node_offset, const struct device_node *d
 			 const char *propname)
 {
 	const void *prop, *fdtprop;
-	int len = 0, fdtlen = 0, ret;
+	int len = 0, fdtlen = 0;
 
 	prop = of_get_property(dn, propname, &len);
 	fdtprop = fdt_getprop(fdt, node_offset, propname, &fdtlen);
 
 	if (fdtprop && !prop)
-		ret = fdt_delprop(fdt, node_offset, propname);
+		return fdt_delprop(fdt, node_offset, propname);
 	else if (prop)
-		ret = fdt_setprop(fdt, node_offset, propname, prop, len);
-
-	return ret;
+		return fdt_setprop(fdt, node_offset, propname, prop, len);
+	else
+		return -FDT_ERR_NOTFOUND;
 }
 
 static int update_pci_dma_nodes(void *fdt, const char *dmapropname)