From nobody Sat Oct 4 22:35:27 2025 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (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 C464B10E0 for ; Tue, 12 Aug 2025 13:10:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.129.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755004209; cv=none; b=RjwSwk8wPO8Ws1yFXox8/qJhpIE43pjkTfdjZGHO5n2F2xuzkn2GwdiYmZFnId6Z5BWtBObu1IqTZatQX1pfLHxh9TqJt5Z9haevOji3UMj8mZymI0QiOunWa+AZwMxtQf0nO1/Jvm4NDyBvrVzZsBR1PHkvJ5PmrJrXaDN5JxQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755004209; c=relaxed/simple; bh=UtVGplLVPQz99pYtdropcPloSNPhzzx3stWXrYTz0w4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-type; b=fkY5PD2XcpWSA6V+DENS8rlQlnurkVirJyizjLSwRHKpxFSYJJWqjKOh2MJpGC3R9o5rAqf0MVH8E/0czcPeRPf8mEki4R/AOrM3skk0ASHM341Cv1UCyAKZjdqddxKVJlTPYk+Eqz65240njcQrBtZyQfw8x2WMFB5Olg95RYc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=bFSSgChN; arc=none smtp.client-ip=170.10.129.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="bFSSgChN" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1755004206; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=KrKPnao6QnTzTb2pG0ayBWIzuAufBFmMDXfM7PPaads=; b=bFSSgChN8d7ma93SY5ejdzDmIg5lHVeBYwNaSJtrD5J+qeBYpikijFcpj4PGbQ4AsltzKn ycFFH9435HMWgNw5pe4E/0DTjmgghZYCt8IP4PE4Z3TFKBukPn3TmC4WwUsfG+iHg6CFsi 6i0LiwJw9RIBnA1qkIhlageFCd4cJEk= Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-81-ZtSTzWdEPtKWugn1Y9IMQQ-1; Tue, 12 Aug 2025 09:10:00 -0400 X-MC-Unique: ZtSTzWdEPtKWugn1Y9IMQQ-1 X-Mimecast-MFC-AGG-ID: ZtSTzWdEPtKWugn1Y9IMQQ_1755004197 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id EF7B21800352; Tue, 12 Aug 2025 13:09:55 +0000 (UTC) Received: from MiWiFi-R3L-srv.redhat.com (unknown [10.72.112.156]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id D4231195608F; Tue, 12 Aug 2025 13:09:45 +0000 (UTC) From: Baoquan He To: linux-mm@kvack.org Cc: snovitoll@gmail.com, ryabinin.a.a@gmail.com, christophe.leroy@csgroup.eu, hca@linux.ibm.com, andreyknvl@gmail.com, akpm@linux-foundation.org, chenhuacai@loongson.cn, davidgow@google.com, glider@google.com, dvyukov@google.com, alexghiti@rivosinc.com, kasan-dev@googlegroups.com, loongarch@lists.linux.dev, linuxppc-dev@lists.ozlabs.org, linux-um@lists.infradead.org, linux-kernel@vger.kernel.org, agordeev@linux.ibm.com, Baoquan He Subject: [PATCH 1/4] arch/loongarch: remove kasan_arch_is_ready() Date: Tue, 12 Aug 2025 21:09:30 +0800 Message-ID: <20250812130933.71593-2-bhe@redhat.com> In-Reply-To: <20250812130933.71593-1-bhe@redhat.com> References: <20250812130933.71593-1-bhe@redhat.com> 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 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 Content-Type: text/plain; charset="utf-8" From: Sabyrzhan Tasbolatov With the help of static key kasan_flag_enabled, kasan_arch_is_ready() is not needed any more. So reomve the unneeded kasan_arch_is_ready() and the relevant codes. Here, move kasan_flag_enabled enabling before populating shadow of liner mapping regions so that kasan_mem_to_shadow() can function well just as the old variable 'kasan_early_stage' is located. Signed-off-by: Sabyrzhan Tasbolatov Signed-off-by: Baoquan He --- arch/loongarch/include/asm/kasan.h | 7 ------- arch/loongarch/mm/kasan_init.c | 10 +++------- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/arch/loongarch/include/asm/kasan.h b/arch/loongarch/include/as= m/kasan.h index 62f139a9c87d..0e50e5b5e056 100644 --- a/arch/loongarch/include/asm/kasan.h +++ b/arch/loongarch/include/asm/kasan.h @@ -66,7 +66,6 @@ #define XKPRANGE_WC_SHADOW_OFFSET (KASAN_SHADOW_START + XKPRANGE_WC_KASAN_= OFFSET) #define XKVRANGE_VC_SHADOW_OFFSET (KASAN_SHADOW_START + XKVRANGE_VC_KASAN_= OFFSET) =20 -extern bool kasan_early_stage; extern unsigned char kasan_early_shadow_page[PAGE_SIZE]; =20 #define kasan_mem_to_shadow kasan_mem_to_shadow @@ -75,12 +74,6 @@ void *kasan_mem_to_shadow(const void *addr); #define kasan_shadow_to_mem kasan_shadow_to_mem const void *kasan_shadow_to_mem(const void *shadow_addr); =20 -#define kasan_arch_is_ready kasan_arch_is_ready -static __always_inline bool kasan_arch_is_ready(void) -{ - return !kasan_early_stage; -} - #define addr_has_metadata addr_has_metadata static __always_inline bool addr_has_metadata(const void *addr) { diff --git a/arch/loongarch/mm/kasan_init.c b/arch/loongarch/mm/kasan_init.c index 0c32eee6910f..f156cba818e6 100644 --- a/arch/loongarch/mm/kasan_init.c +++ b/arch/loongarch/mm/kasan_init.c @@ -40,11 +40,9 @@ static pgd_t kasan_pg_dir[PTRS_PER_PGD] __initdata __ali= gned(PAGE_SIZE); #define __pte_none(early, pte) (early ? pte_none(pte) : \ ((pte_val(pte) & _PFN_MASK) =3D=3D (unsigned long)__pa(kasan_early_shadow_= page))) =20 -bool kasan_early_stage =3D true; - void *kasan_mem_to_shadow(const void *addr) { - if (!kasan_arch_is_ready()) { + if (!kasan_enabled()) { return (void *)(kasan_early_shadow_page); } else { unsigned long maddr =3D (unsigned long)addr; @@ -300,7 +298,8 @@ void __init kasan_init(void) kasan_populate_early_shadow(kasan_mem_to_shadow((void *)VMALLOC_START), kasan_mem_to_shadow((void *)KFENCE_AREA_END)); =20 - kasan_early_stage =3D false; + /* Enable KASAN here before kasan_mem_to_shadow(). */ + static_branch_enable(&kasan_flag_enabled); =20 /* Populate the linear mapping */ for_each_mem_range(i, &pa_start, &pa_end) { @@ -329,9 +328,6 @@ void __init kasan_init(void) csr_write64(__pa_symbol(swapper_pg_dir), LOONGARCH_CSR_PGDH); local_flush_tlb_all(); =20 - /* KASAN is now initialized, enable it. */ - static_branch_enable(&kasan_flag_enabled); - /* At this point kasan is fully initialized. Enable error messages */ init_task.kasan_depth =3D 0; pr_info("KernelAddressSanitizer initialized.\n"); --=20 2.41.0