From nobody Thu Dec 18 03:56:16 2025 Received: from mail-ot1-f52.google.com (mail-ot1-f52.google.com [209.85.210.52]) (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 4722E34DCC9 for ; Mon, 15 Dec 2025 14:33:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765809219; cv=none; b=VtW3ejiF31Kv5UMnSWMfImC+RXdp9eXKLSBmaix1MNgdT2LV5sfx4A+r2tprLDPjYZvP5+09kZVAlDLtbqR6giOMiBaNkjKYpVfTBQb3fUxeX/MC4n4nHVEg0cNq7v1ZRdP1rPAlhANjnbrHOiehykKWN007/vN7xrvGMMt9U1w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765809219; c=relaxed/simple; bh=zH4YWQRAdlroi1BEbRwoiFaxHmyAYt+d+J04FZfJluI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oJkho/CsN70Lp80ZD53X3oBdfYyg7isOb0xkhBeu8zQgT06lqGhuE1n2+t2zA8cupiKGf1MtIR73/BZOGo1o1xMULwAJaBXz5vDOfd612PHibA3eQrvCOFyLgpmd8HklBudjOv/7Ns2UgYjxaFtqX6zK1THMd265fRJWCojBuuI= 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=QFWbDyKZ; arc=none smtp.client-ip=209.85.210.52 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="QFWbDyKZ" Received: by mail-ot1-f52.google.com with SMTP id 46e09a7af769-7c730af8d69so2123552a34.1 for ; Mon, 15 Dec 2025 06:33:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765809216; x=1766414016; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=J6X3s6ds8sxTv7v4tGR1tVatpguqdHjStQn1mwDgyQQ=; b=QFWbDyKZDZbdqvqXaSB8lDAMXh2B8uUPkNHNHDHTr2NnQoPOiuJRqlot1BlZ0VZG/q In67hYSuKmN07SdYuqVLlTHyf16vzueZMOK03W36teuD4OjktS4RPFmxMafCfGsOccUT abH/kT/nK6itf+ubSEfe1D66DMLAfYHMqhtKJ7vItUji6TLDHahqz1Y+fOUzCGC+d+gc 7r5WHQGS9nlZ9RbU+T4vl94bzfwgAWY+AbfodXHRByug96kufGaiouYK0H8BK86xD/eH LvE1Al+/z/JZ3YDezAZGiA+c/teoX9JVbpepXJ02wKQEMbjJR2YkrIa6GxmLhAz2jlId GzVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765809216; x=1766414016; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=J6X3s6ds8sxTv7v4tGR1tVatpguqdHjStQn1mwDgyQQ=; b=scBma9EQ/HqX/ElxX4Mmbt6QQxMDPCTICD9qQClcairlCVO0Tgmy83MilDZG9dO1KV gY0uH3kF5GnwKL524OiEIPZFxB8vMxcJfh34GZ+OFjLAr44be9C/roicGkeThx4ml3ds qtkG+94MQK67nlPLEKLvY8qNzm2k1/6A80EkIJwlDOZ864gx4OSbFaeDYvml/uVS5kOV eIeQ3xIsj0txuocGnfx39Sm9LlmSRsQ4HID1/siyKRFUczwUVwH0FbAHlBtS+pGc+rQ1 PmoL1B4iPSocIKQ16QYzoQNlEnOraiUnZoZdh5eFJNRASectjHy3P9RBCM7QuBzZBxad 005w== X-Gm-Message-State: AOJu0YypTqzougJAipLF6iY4M/LqgegiZ0khMJSb5xkC4A2u/EGpf17P iMTfaqfCWFJMHPQIOHjA1AwVWFptFoIZCdrOOh7a4LAI0iXo4Zx5hak= X-Gm-Gg: AY/fxX5imsz/OB9zPUpKzkRaWUryGyork6lnPpjukvrSQ5MfUCwyF8BQBudagFlrt8f XcaRB9iH/uLZJgWTdtHvCI2PGc8S4YtE7lhHWRryAQB6CQQh/1Z1QSLYAC51Fm5KPK3FdD3cK2P r9H3+gqNMjJy833jkmJ1lSMYOxlC87+CieLRqP8RZ1OMcYx0WZPMv6A7LBOEvwdT+NfwkGxlQBY zOFQzTHtsmCDMj+GbZuW19YzusFSP3Sg/doZ0KBKkEyQhkpRfnMjPdjdfZGI3+yd1fUQw9W27yp 8gx9TmXcd3eBgsXdHI0qXMmldThwyFSEIukj+XaIkQygqbLOtZpiPRCcapUhUibBdgVshqO9ild CXEiHlZ5zD9xL1YhnKkepfblNQbj6FOGwEWJlJxmzYsoTJmr/bzGTDXNCn+z9+n2ZU3aolzdTCN oi2Hb3/Gf3CdLJY0WLBJbYJz8wbFtf8bKD57YHpPXn0nTkXK6DPF9I870zQhDvwX8nMD3APEMr9 eSCgCG/XqnqF+5vyQffPua/FnJwl9KRfuVC/Q== X-Google-Smtp-Source: AGHT+IE7HCcnRnUjUxXkaj6rYx3R7+gsXZiWO5Xa3hk7sM2EeKK419ToB0moAp9+hknfiLW8z1Svdg== X-Received: by 2002:a05:6830:254a:b0:7c6:9d7b:b033 with SMTP id 46e09a7af769-7cae8355339mr6569304a34.22.1765809216082; Mon, 15 Dec 2025 06:33:36 -0800 (PST) Received: from poisoncrownitro.ht.home (72-48-10-44.dyn.grandenetworks.net. [72.48.10.44]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7cadb1d1d71sm9412782a34.2.2025.12.15.06.33.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 06:33:35 -0800 (PST) From: Ricky Ringler To: Max Filippov , Chris Zankel Cc: linux-kernel@vger.kernel.org, Ricky Ringler Subject: [PATCH v3] xtensa: align: validate access in fast_load_store Date: Mon, 15 Dec 2025 08:33:23 -0600 Message-ID: <20251215143323.2771889-1-richard.rringler@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: 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" access_ok() is used only in user mode and branches to .Linvalid_instruction on fault. Kernel mode skips access_ok(). Tested-by: Ricky Ringler Signed-off-by: Ricky Ringler --- v3: - Changed kernel mode behavior to skip access_ok() v2: - Address Max's feedback - Fixed formatting - Added user mode branch Testing: - Built with CONFIG_MMU enabled - objdump before/after comparison and validated code path arch/xtensa/kernel/align.S | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/arch/xtensa/kernel/align.S b/arch/xtensa/kernel/align.S index ee97edce2300..f2d0d831ce43 100644 --- a/arch/xtensa/kernel/align.S +++ b/arch/xtensa/kernel/align.S @@ -21,6 +21,9 @@ #include #include #include +#ifdef CONFIG_MMU +#include +#endif =20 #if XCHAL_UNALIGNED_LOAD_EXCEPTION || defined CONFIG_XTENSA_LOAD_STORE #define LOAD_EXCEPTION_HANDLER @@ -185,8 +188,11 @@ ENTRY(fast_load_store) =20 #ifdef CONFIG_MMU /* l32e can't be used here even when it's available. */ - /* TODO access_ok(a3) could be used here */ - j .Linvalid_instruction + rsr a6, ps + bbci.l a6, PS_UM_BIT, 1f # kernel mode + movi a5, 8 + access_ok a3, a5, a6, a2, .Linvalid_instruction +1: #endif l32i a5, a3, 0 l32i a6, a3, 4 --=20 2.43.0