From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1D78441C0A4; Sat, 28 Feb 2026 17:45:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772300742; cv=none; b=imb2gVwcju5cgLxpCAkzizvfsgbT7AGoP1tH3bcCyGTZG4wbL7TFdHvWJAvuA4daa8OAtMC+wAZF5mmQh+NnKVt5LJTOlEbRQ/+DpbB6X1JW3Jy3daVg+N0QhPMxNp72Nebnu5f/hdQnheuljQBYqXgIIFUK47VwZjhhstFX94c= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772300742; c=relaxed/simple; bh=afb7B18bbscKce6/uYHwcOSkVej6oPy+5SftlNgAz68=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=a9c1oOl2hB8wKqJAuifDT6H26hSfod29dfgCh4Y6oPDSZWoHRulM+r+gtdBAY5sRvZi9DD69DHDyrTEQVGQrl2NIJR/h/5QtIxMtj/dEMicUHQpR10VECz1l81yXM1xBW3hAU4rmtL+xHudmOWRt6HaldwKaGYYIyhHluk64rD4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=vDSBRxF8; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="vDSBRxF8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6A6DAC19423; Sat, 28 Feb 2026 17:45:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1772300742; bh=afb7B18bbscKce6/uYHwcOSkVej6oPy+5SftlNgAz68=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vDSBRxF8p0O9spFcbYWP081FTCAdErzyZ22+t/2W21gYWM+ieHHrZx+KR4RTp0X10 14wqfNAQ9RL/7eIM+VcOTvms7epTeI7K2xVU+vIuE3RiZfX0TZIpinwLUY5I04K4Xx VPjUpohqvx5G8frGXdMU8BFaV4cDvxQeE2oX4SCWkUH8s7st1hVn4Za0Z33rFGFp8d lB80kwKCl2VVb8UfynvhnG0Wg2keu2eJsJk19zb/21gkqaQU3PhCPXB2RV2vaoh7at PJsH8F6TqYjntiN1gA86/J1nKPvcY7jwCUHjc9rZPhoMN2kuxGfV0DneMhzWG2yKF0 MJPaztEJCZBnw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tiezhu Yang , Huacai Chen , Sasha Levin Subject: [PATCH 6.19 777/844] LoongArch: Disable instrumentation for setup_ptwalker() Date: Sat, 28 Feb 2026 12:31:30 -0500 Message-ID: <20260228173244.1509663-778-sashal@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260228173244.1509663-1-sashal@kernel.org> References: <20260228173244.1509663-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit From: Tiezhu Yang [ Upstream commit 7cb37af61f09c9cfd90c43c9275307c16320cbf2 ] According to Documentation/dev-tools/kasan.rst, software KASAN modes use compiler instrumentation to insert validity checks. Such instrumentation might be incompatible with some parts of the kernel, and therefore needs to be disabled, just use the attribute __no_sanitize_address to disable instrumentation for the low level function setup_ptwalker(). Otherwise bringing up the secondary CPUs failed when CONFIG_KASAN is set (especially when PTW is enabled), here are the call chains: smpboot_entry() start_secondary() cpu_probe() per_cpu_trap_init() tlb_init() setup_tlb_handler() setup_ptwalker() The reason is the PGD registers are configured in setup_ptwalker(), but KASAN instrumentation may cause TLB exceptions before that. Cc: stable@vger.kernel.org Signed-off-by: Tiezhu Yang Signed-off-by: Huacai Chen Signed-off-by: Sasha Levin --- arch/loongarch/mm/tlb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/loongarch/mm/tlb.c b/arch/loongarch/mm/tlb.c index 4014c44695878..aaf7d685cc2aa 100644 --- a/arch/loongarch/mm/tlb.c +++ b/arch/loongarch/mm/tlb.c @@ -202,7 +202,7 @@ void __update_tlb(struct vm_area_struct *vma, unsigned long address, pte_t *ptep local_irq_restore(flags); } -static void setup_ptwalker(void) +static void __no_sanitize_address setup_ptwalker(void) { unsigned long pwctl0, pwctl1; unsigned long pgd_i = 0, pgd_w = 0; -- 2.51.0