[PATCH] init/main.c: prevent warning on lack of default implicit rdinit

From: Harry Austen

Date: Wed Jan 14 2026 - 17:02:49 EST


If rdinit was not explicitly provided on cmdline, and default /init does
not exist, no warning should be printed.

Fixes: 98aa4d5d242d ("init/main.c: add warning when file specified in rdinit is inaccessible")
Signed-off-by: Harry Austen <hpausten@xxxxxxxxxxxxxx>
---
init/main.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/init/main.c b/init/main.c
index b84818ad9685f..fcf99d1adbe02 100644
--- a/init/main.c
+++ b/init/main.c
@@ -162,6 +162,7 @@ static size_t initargs_offs;

static char *execute_command;
static char *ramdisk_execute_command = "/init";
+static bool __initdata ramdisk_execute_command_provided = false;

/*
* Used to generate warnings if static_key manipulation functions are used
@@ -623,6 +624,7 @@ static int __init rdinit_setup(char *str)
unsigned int i;

ramdisk_execute_command = str;
+ ramdisk_execute_command_provided = true;
/* See "auto" comment in init_setup */
for (i = 1; i < MAX_INIT_ARGS; i++)
argv_init[i] = NULL;
@@ -1699,8 +1701,9 @@ static noinline void __init kernel_init_freeable(void)
int ramdisk_command_access;
ramdisk_command_access = init_eaccess(ramdisk_execute_command);
if (ramdisk_command_access != 0) {
- pr_warn("check access for rdinit=%s failed: %i, ignoring\n",
- ramdisk_execute_command, ramdisk_command_access);
+ if (ramdisk_execute_command_provided || ramdisk_command_access != -ENOENT)
+ pr_warn("check access for rdinit=%s failed: %i, ignoring\n",
+ ramdisk_execute_command, ramdisk_command_access);
ramdisk_execute_command = NULL;
prepare_namespace();
}
--
2.52.0