From nobody Fri Apr 3 06:27:17 2026 Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AF02E33FE0D for ; Wed, 18 Feb 2026 15:00:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771426835; cv=none; b=I2WhzTmSbTUQwIq1Jv0nr8t61GXzuQri9bE4nnsqDXn6WFMroQLIGSEtjO0IPxG1lgb5EuNGbqor+TyGcyT4oqEkQwX/x+5UpuZpIdgtR0B1RpKHA970QWBdN9+G6QP02WetvCX/97yzHyHnI23IsnuRW6ri+XJuV5H+Matwu7Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771426835; c=relaxed/simple; bh=zy59dPS2hD92vP3MLQWUMDXwPYV+OjjdOKyEuw60lIU=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=V6RxhnMQJ3aZkfZFfnkdX0IFZUhTi+uAu71EbpYdNrGwIKXQLKVkWth94lwwQ2FBLxbHHap9RTG6Dr+t1oruXiboFbdnwDLEfqvADjglJjWtSaKNEdYxHxnFfDlSjzPg0jnbqgeF49MjA/Ro6PkCiOl+nA2ZKegUc5uEac38xzU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Tumj+qLv; arc=none smtp.client-ip=209.85.221.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Tumj+qLv" Received: by mail-wr1-f43.google.com with SMTP id ffacd0b85a97d-436e87589e8so6450415f8f.3 for ; Wed, 18 Feb 2026 07:00:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771426832; x=1772031632; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=7/AG78zyCG9ZtV4UtHnxKqlq/Ul7RIZTdXHfVc8sOnk=; b=Tumj+qLvawaZf/xE371Pygj5xcM2QmBdjGN+bmtvL2YUmYlKHQt1S2CgLRztKFlh/x 7lMHQjoPr3In6JeFfTpGYiBZ5plRm3NUfBzh8oOKcruolQu2hHTMXz/NVgp3kBtw3f4H sewpZQng70rHAM27mEK/g3DXxWczzikMKj+ykh8/gbbz0sEkOfJO6DgeyDYh8r30JZfi OYmE1FjFUk3vKY/B3bd3UHRZNFmW/FVR0/y4LH2D2iADQKO/BrebDbq5It1MJnzW8KbE i7cWlqvytKgQYYGpdPCegkJ0iolvtF3vczE+R/57M/nWEpr0JwvPtdgL3kMOqbiEsm8q 8Zfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771426832; x=1772031632; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=7/AG78zyCG9ZtV4UtHnxKqlq/Ul7RIZTdXHfVc8sOnk=; b=mUM4mDNu74onXMDTj96vKWx1gpr2AJM7RS84Adu0Ozcddfcrb06+6LL74h17vVcXLO 7eTMswnlfkiteNQ6SICNsEksHNZeNCqyjDcPhvEqslZgU5DK72xEO4gTwB7IFlx/IZKn yXCct9bbW9weta2gaGClhLPgnMRwd55WT5vyBlJz209nPtac7UQQu2ssOfQXmCKFNiNa g1KsIJf2PCj+31sZ5h6be986/ulVUFNLpbjV1p/cXG0sn9kRFo69cTDYFueRy066ziFK eBhhpBTWVjGfiEEmtCTOrj+en0alL2boppF5UUB8NqCCtGTSaIANUoKymzRtYNjPqjsm P7jA== X-Forwarded-Encrypted: i=1; AJvYcCUdi0BbTtFwS/NYwuMvfwquYHuTqDjr8aOdRqdXggGtPEtWdaCd/GDJmzki1m7spIjQv+q0ui3ax3wGp10=@vger.kernel.org X-Gm-Message-State: AOJu0Yxg0rwn8I4E03aIMUL8pINCMUoV3aGHeFyWxywe8TGvvkVULfh+ fwZXlzVauyUcQ9hqdZzOsG6FDtqdFnroLeE4lUo7p4uAHlCTMS3GQdXlxdHw0d44wPE= X-Gm-Gg: AZuq6aJ8vF4vpRTdq4KvVA2WBHke8+5lnCZnlOCm6DEnK2PVyJUG1SR/6U1l6yjeGD2 LeKpQ4XXqXIdL///xcgOJeS9GgABu7d8aLyQyNOt4ljysUd0Gq5MnuI9xtUGX30JMeRfUGzHl2L 1aoXXjuFznB8T9y2aFwWTvCtv+3RDe3XbmoECEUA7eigYo/WWZfNRgkRYGa+cmBxfwRiItG6G0n 6Lji/f1WFr70a9sKWeSa5Ap1W4t3Trx6gmhtpUmlwRYpkEprXIR0kQTN3dajFhrUl7VIodu40J8 QhOdyVRnVpUc+errBK43s5wOJqCE6MqTxHPvY3wjKGTp1/I7T+V/COtMdWYx7Qg8s1ib7Ps8XmY 9lJrclnP4b2Xrntg3Fl/IGJH6OWEVloYMQkKVbNcWqEazvz6b3Fhg1BNBmBM/SJwafaUJw4vc1d UbSA7BjG1cRxG+od/ihawnIRTI7myIo5mhWjci4Y3jt2ifW1i4HvvoDvF59IX25dqd1ScpIKIVp mje1zq2lHFy9mvF X-Received: by 2002:a5d:588d:0:b0:432:5d73:79a1 with SMTP id ffacd0b85a97d-4379792bc6bmr30558653f8f.55.1771426831776; Wed, 18 Feb 2026 07:00:31 -0800 (PST) Received: from localhost.localdomain ([196.119.106.230]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43796a6a5e5sm40133396f8f.9.2026.02.18.07.00.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Feb 2026 07:00:31 -0800 (PST) From: redacherkaoui To: x86@kernel.org Cc: tglx@kernel.org, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, linux-kernel@vger.kernel.org Subject: [PATCH] x86/boot/compressed: Fix signedness of rdfs8() Date: Wed, 18 Feb 2026 15:00:08 +0000 Message-ID: <20260218150008.28179-1-redacherkaoui67@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" rdfs8() reads a raw byte from the decompressor command line buffer but returns it as 'char'. On toolchains where 'char' is signed, values in the range 0x80..0xff become negative when promoted, which can lead to incorrect comparisons while parsing. Return u8 from rdfs8() to preserve the correct byte value. Signed-off-by: redacherkaoui --- arch/x86/boot/compressed/cmdline.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/arch/x86/boot/compressed/cmdline.c b/arch/x86/boot/compressed/= cmdline.c index e162d7f59cc5..d48ba959dbc5 100644 --- a/arch/x86/boot/compressed/cmdline.c +++ b/arch/x86/boot/compressed/cmdline.c @@ -8,13 +8,16 @@ static inline void set_fs(unsigned long seg) { fs =3D seg << 4; /* shift it back */ } + typedef unsigned long addr_t; -static inline char rdfs8(addr_t addr) +static inline u8 rdfs8(addr_t addr) { - return *((char *)(fs + addr)); + return *(u8 *)(fs + addr); } + #include "../cmdline.c" -unsigned long get_cmd_line_ptr(void) + +static unsigned long get_cmd_line_ptr(void) { unsigned long cmd_line_ptr =3D boot_params_ptr->hdr.cmd_line_ptr; =20 @@ -22,10 +25,12 @@ unsigned long get_cmd_line_ptr(void) =20 return cmd_line_ptr; } + int cmdline_find_option(const char *option, char *buffer, int bufsize) { return __cmdline_find_option(get_cmd_line_ptr(), option, buffer, bufsize); } + int cmdline_find_option_bool(const char *option) { return __cmdline_find_option_bool(get_cmd_line_ptr(), option); --=20 2.43.0