From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id D82C0C83F25 for ; Mon, 21 Jul 2025 10:14:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5576E6B0095; Mon, 21 Jul 2025 06:14:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 52F3D6B0098; Mon, 21 Jul 2025 06:14:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 46C8A6B0099; Mon, 21 Jul 2025 06:14:09 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 366A46B0095 for ; Mon, 21 Jul 2025 06:14:09 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id AF4C1BAB6B for ; Mon, 21 Jul 2025 10:14:08 +0000 (UTC) X-FDA: 83687861376.29.AEE9546 Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by imf04.hostedemail.com (Postfix) with ESMTP id F35264000C for ; Mon, 21 Jul 2025 10:14:05 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; spf=pass (imf04.hostedemail.com: domain of chenhuacai@loongson.cn designates 114.242.206.163 as permitted sender) smtp.mailfrom=chenhuacai@loongson.cn ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1753092847; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:references; bh=glY7jZeijaP0v+NYdUCq/TUyUPvYBCJ9A4/I8V5mONY=; b=prbhrQDSuQlyALTOsRlh+EsOmH5KyYb33UjkaPuuTWm4YiMXp8aWaRf67dWx0sAsu3L3Jv Nni4hH2EmvbbAhVaAwuNJKxeyz29JdnbflPJYI7siJ4vJgpcR67InHOkkv+ooR0mLmG/hj QOJkQXtw1ighJJKMcpo67pVb94BFcqE= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=none; spf=pass (imf04.hostedemail.com: domain of chenhuacai@loongson.cn designates 114.242.206.163 as permitted sender) smtp.mailfrom=chenhuacai@loongson.cn; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1753092847; a=rsa-sha256; cv=none; b=sb9ZFoF3W2p6yBvxtsDgPIoktoDuGDGhYrdD+X28oJxlXvCr48LShCr+c7xO/9CKnHu9AI QT69Zy2bi632Vi11VAsIoevHKNByMfEjmU34vtec1Lv6kaeaVkhBVCyZX4F+El/7m7Sb8h p1zB1Az3futy9wEzKpPUy1osZXC/ea0= Received: from loongson.cn (unknown [223.64.68.193]) by gateway (Coremail) with SMTP id _____8AxfeHqEn5odL0uAQ--.54768S3; Mon, 21 Jul 2025 18:14:02 +0800 (CST) Received: from localhost.localdomain (unknown [223.64.68.193]) by front1 (Coremail) with SMTP id qMiowJAxz8PgEn5oAg4gAA--.20199S2; Mon, 21 Jul 2025 18:14:01 +0800 (CST) From: Huacai Chen To: Huacai Chen , Andrew Morton Cc: linux-mm@kvack.org, Alexander Viro , Christian Brauner , Jan Kara , linux-kernel@vger.kernel.org, Huacai Chen , stable@vger.kernel.org Subject: [PATCH V3] init: Handle bootloader identifier in kernel parameters Date: Mon, 21 Jul 2025 18:13:43 +0800 Message-ID: <20250721101343.3283480-1-chenhuacai@loongson.cn> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CM-TRANSID:qMiowJAxz8PgEn5oAg4gAA--.20199S2 X-CM-SenderInfo: hfkh0x5xdftxo6or00hjvr0hdfq/ X-Coremail-Antispam: 1Uk129KBj93XoW7tw4fCr1rCFW3GF1xXr17XFc_yoW8KFWUpF WktryfW3ykGws8Cr48Wr4vga4Skwn3Za1UGanxWws8XFn8tFyFqrWrtF1agasxtrWftF42 gFn8ZF18C3ZrCFXCm3ZEXasCq-sJn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7KY7ZEXa sCq-sGcSsGvfJ3Ic02F40EFcxC0VAKzVAqx4xG6I80ebIjqfuFe4nvWSU5nxnvy29KBjDU 0xBIdaVrnRJUUUkYb4IE77IF4wAFF20E14v26r1j6r4UM7CY07I20VC2zVCF04k26cxKx2 IYs7xG6rWj6s0DM7CIcVAFz4kK6r1Y6r17M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48v e4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_JFI_Gr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI 0_Jr0_Gr1l84ACjcxK6I8E87Iv67AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVCY1x0267AK xVWxJr0_GcWle2I262IYc4CY6c8Ij28IcVAaY2xG8wAqjxCEc2xF0cIa020Ex4CE44I27w Aqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_Jr0_Jr4lYx0Ex4A2jsIE 14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvY0x0EwIxGrwCF04k20xvY0x 0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v26r1j6r18MI8I3I0E 7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Jw0_GFylIxkGc2Ij64vIr41lIxAIcV C0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxVAFwI0_Jr0_Gr1lIxAIcVCF 04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r1j6r4UMIIF0xvEx4A2jsIEc7 CjxVAFwI0_Jr0_GrUvcSsGvfC2KfnxnUUI43ZEXa7IU8xuctUUUUU== X-Rspam-User: X-Rspamd-Queue-Id: F35264000C X-Rspamd-Server: rspam06 X-Stat-Signature: ft7gdk3tjycbgqczjha79a4rerjz955h X-HE-Tag: 1753092845-967851 X-HE-Meta: U2FsdGVkX18BT3B9CE6Auf81eMoUHRUJiPfw+3fDDuipjRgSrO4jcKFWx0Q+gjBOtW6iyRjYX0ElEGMkF2c3l1Ic+eFu/X9vEIyK59oSuzxnYxUl/MUP90eIL7VHm1YLf7QtXptXvZJdqtCWBU+RbI13/cuaw16o5Yra45ncSSf0bAZ54FasZ6y8t40qV17xU5c39kkyTifIqYBVVBErTseVIwzIliVnlhgEdbgwD9g7LjJq1sPltwNDIx88NWcRJd2l+N6JNP06SrUe8apPG18ZCRGqX9N0j5SkThBLrf7WtD3F6IIicNqK0b1f6rFLHoNV8Uap0bFkg248DioWtaMKbJymrYZiBvybIZFCmK95213HVxGAtjSfCBqIHqMQLYJLkL1DRpkitE6KKLwP1woazYCzQ84eOw/lI7mlmJiejilmmzS3AHGMWCD1+n1Etl9BI4RQNmH3Otd8UQQKuYQpEfPKoFeXxp04/XVPzyGx7XXdaiLLBjExFAjMq60nlOwnFBxpeL7INvgYDLm22MhVOa6st9qmiDsL8Kdvmpz96G441cXOQHpCLHmFUZX0G8LRdZUFAHd5n6JsJopbbBvgE+EiWJKu8PUGxgOKaM7F62ZoT6n2Eujoira33RUryRvQqaX4NTaSt7VAGHoxq60YAcjbHRRaYbRMPvXyra639zLVW1sUnolljO/yyK4AEcap9YPMboFgmDjySNSGtEVHywG2eyqbCHhkungH2oqFpjN7yFpN9g62sXS95dwCyEbwt3TeWqc2VaTe4Xzuu41xfJyISU+BwkE/sySB+hs9DGH4DaGBLhwhU/aeDMBw40pRCvaj7LcYROTKxZusL7jG5WS9vYpwqGjb5mzHyFSV77f+YoRveWwjAbzXD7MEL90bqd1K5vuSdBSZSI/uWtOjU0qF3XZJVEZDXwo5WscFm/meeB+u9UTIfQd+RVkHjiERBH1s3mAWVS3gqpR PGUhA0gQ IkMkppoXC/Czg7bWTi8ihbO3u35ef+xe2Pcfg0rjP/oKePI0= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: BootLoader (Grub, LILO, etc) may pass an identifier such as "BOOT_IMAGE= /boot/vmlinuz-x.y.z" to kernel parameters. But these identifiers are not recognized by the kernel itself so will be passed to user space. However user space init program also doesn't recognized it. KEXEC/KDUMP (kexec-tools) may also pass an identifier such as "kexec" on some architectures. We cannot change BootLoader's behavior, because this behavior exists for many years, and there are already user space programs search BOOT_IMAGE= in /proc/cmdline to obtain the kernel image locations: https://github.com/linuxdeepin/deepin-ab-recovery/blob/master/util.go (search getBootOptions) https://github.com/linuxdeepin/deepin-ab-recovery/blob/master/main.go (search getKernelReleaseWithBootOption) So the the best way is handle (ignore) it by the kernel itself, which can avoid such boot warnings (if we use something like init=/bin/bash, bootloader identifier can even cause a crash): Kernel command line: BOOT_IMAGE=(hd0,1)/vmlinuz-6.x root=/dev/sda3 ro console=tty Unknown kernel command line parameters "BOOT_IMAGE=(hd0,1)/vmlinuz-6.x", will be passed to user space. Cc: stable@vger.kernel.org Signed-off-by: Huacai Chen --- V2: Update comments and commit messages. V3: Document bootloader identifiers. init/main.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/init/main.c b/init/main.c index 225a58279acd..b25e7da5347a 100644 --- a/init/main.c +++ b/init/main.c @@ -545,6 +545,12 @@ static int __init unknown_bootoption(char *param, char *val, const char *unused, void *arg) { size_t len = strlen(param); + /* + * Well-known bootloader identifiers: + * 1. LILO/Grub pass "BOOT_IMAGE=..."; + * 2. kexec/kdump (kexec-tools) pass "kexec". + */ + const char *bootloader[] = { "BOOT_IMAGE=", "kexec", NULL }; /* Handle params aliased to sysctls */ if (sysctl_is_alias(param)) @@ -552,6 +558,12 @@ static int __init unknown_bootoption(char *param, char *val, repair_env_string(param, val); + /* Handle bootloader identifier */ + for (int i = 0; bootloader[i]; i++) { + if (!strncmp(param, bootloader[i], strlen(bootloader[i]))) + return 0; + } + /* Handle obsolete-style parameters */ if (obsolete_checksetup(param)) return 0; -- 2.47.3