[PATCH] initrd: Remove unnecessary goto label 'successful_load'

Thorsten Blum posted 1 patch 2 weeks, 5 days ago
init/do_mounts_rd.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
[PATCH] initrd: Remove unnecessary goto label 'successful_load'
Posted by Thorsten Blum 2 weeks, 5 days ago
The goto label 'successful_load' isn't really necessary. Set 'res = 1'
immediately and let 'goto done' handle the rest.

No functional changes.

Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
---
 init/do_mounts_rd.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/init/do_mounts_rd.c b/init/do_mounts_rd.c
index ac021ae6e6fa..97ddcdaba893 100644
--- a/init/do_mounts_rd.c
+++ b/init/do_mounts_rd.c
@@ -210,7 +210,7 @@ int __init rd_load_image(char *from)
 
 	if (nblocks == 0) {
 		if (crd_load(decompressor) == 0)
-			goto successful_load;
+			res = 1; /* load successful */
 		goto done;
 	}
 
@@ -264,8 +264,6 @@ int __init rd_load_image(char *from)
 	}
 	pr_cont("done.\n");
 
-successful_load:
-	res = 1;
 done:
 	fput(in_file);
 noclose_input:
-- 
2.51.0
Re: [PATCH] initrd: Remove unnecessary goto label 'successful_load'
Posted by Klara Modin 2 weeks, 5 days ago
Hi,

On 2025-09-13 14:15:14 +0200, Thorsten Blum wrote:
> The goto label 'successful_load' isn't really necessary. Set 'res = 1'
> immediately and let 'goto done' handle the rest.
> 
> No functional changes.
> 
> Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
> ---
>  init/do_mounts_rd.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/init/do_mounts_rd.c b/init/do_mounts_rd.c
> index ac021ae6e6fa..97ddcdaba893 100644
> --- a/init/do_mounts_rd.c
> +++ b/init/do_mounts_rd.c
> @@ -210,7 +210,7 @@ int __init rd_load_image(char *from)
>  

>  	if (nblocks == 0) {
>  		if (crd_load(decompressor) == 0)
> -			goto successful_load;
> +			res = 1; /* load successful */
>  		goto done;
>  	}

This is now the only place where res will be set to 1.

>  
> @@ -264,8 +264,6 @@ int __init rd_load_image(char *from)
>  	}
>  	pr_cont("done.\n");
>  

> -successful_load:
> -	res = 1;

This does not seem correct? After this patch res is not updated to 1 anymore
if execution reaches here without taking another goto, i.e. the return
value is changed by this patch.

Regards,
Klara Modin

>  done:
>  	fput(in_file);
>  noclose_input:
> -- 
> 2.51.0
>
Re: [PATCH] initrd: Remove unnecessary goto label 'successful_load'
Posted by Thorsten Blum 2 weeks, 5 days ago
On 13. Sep 2025, at 15:11, Klara Modin wrote:
> On 2025-09-13 14:15:14 +0200, Thorsten Blum wrote:
>> The goto label 'successful_load' isn't really necessary. Set 'res = 1'
>> immediately and let 'goto done' handle the rest.
>> 
>> No functional changes.
>> 
>> Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
>> ---
>> ...
> 
> This is now the only place where res will be set to 1.

Sorry my bad.

> This does not seem correct? After this patch res is not updated to 1 anymore
> if execution reaches here without taking another goto, i.e. the return
> value is changed by this patch.

Thanks, I agree that it doesn't make sense. I only intended to delete
the label, not the 'res = 1'.

Please ignore this patch (unless someone thinks removing the goto label
is worth a v2) and sorry for the noise.

Thanks,
Thorsten