From nobody Sat Oct 4 21:00:52 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 From nobody Sat Oct 4 21:00:52 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 C281522A4EE for ; Tue, 12 Aug 2025 13:10:15 +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=1755004217; cv=none; b=Ew9sF5NwF0bpUG+UJdBEWgQzm96l9wNSd2rCjAj0PJPEwlxPGakKcDEzw4llSYsoSxxBOiKpYWBHEnQz1yHZd4qjMhngPj2hFKxLz7FlK2gincCQhoRPDerBh83tzUfzjpRZE4HwHi7LlxaNXj8cNhBpzSeJLiwJi+GSek/FBAU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755004217; c=relaxed/simple; bh=HulXGtK9t1UOBMxWRSXUEDrM4rB5fu+55UMFmTdtKxs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-type; b=P9Mil0zXjNyqwdd+Ds7I+pVIvKCuzfbZcYZmTIm3I3dC+IcjYD//oLG58C2wJkufEHBoq/SwSLqQCtUjFSVQtr3kEEE+yqigRfIMiriTqMz7KPSlGxBPMVHW31HlpGrKdSDLUwSjUDyhKQbT8Wvze7wka8pMFQ9HrxMHAGOzZw4= 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=HsmruELT; 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="HsmruELT" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1755004214; 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=SMz5O7u0akvXjVncCick/hCZpGXIHb0iYHhbJTqmUJE=; b=HsmruELTgCJxaejzf+aaj4tJljQIoP9IhPmKv9S1V5x8pdwN+O8Y2BfriFoqdU26EKD10x jTI9ENZFvCWlvJEdG00j+kpt3GJGmxu1426FujSzX4hApvTfMEQDSsrmAL7g8jXJomX047 OAZ/jWjhONR6KdyPH+30bfcN96LxOls= Received: from mx-prod-mc-08.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-365-087PP938PFqZR3S46zQ-3g-1; Tue, 12 Aug 2025 09:10:10 -0400 X-MC-Unique: 087PP938PFqZR3S46zQ-3g-1 X-Mimecast-MFC-AGG-ID: 087PP938PFqZR3S46zQ-3g_1755004207 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-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 1F303180034D; Tue, 12 Aug 2025 13:10:07 +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 499F41955F16; Tue, 12 Aug 2025 13:09:56 +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 2/4] arch/powerpc: remove kasan_arch_is_ready() Date: Tue, 12 Aug 2025 21:09:31 +0800 Message-ID: <20250812130933.71593-3-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. Signed-off-by: Sabyrzhan Tasbolatov Signed-off-by: Baoquan He --- arch/powerpc/include/asm/kasan.h | 13 ------------- arch/powerpc/mm/kasan/init_book3s_64.c | 4 ---- 2 files changed, 17 deletions(-) diff --git a/arch/powerpc/include/asm/kasan.h b/arch/powerpc/include/asm/ka= san.h index b5bbb94c51f6..73466d3ff302 100644 --- a/arch/powerpc/include/asm/kasan.h +++ b/arch/powerpc/include/asm/kasan.h @@ -53,19 +53,6 @@ #endif =20 #ifdef CONFIG_KASAN -#ifdef CONFIG_PPC_BOOK3S_64 -DECLARE_STATIC_KEY_FALSE(powerpc_kasan_enabled_key); - -static __always_inline bool kasan_arch_is_ready(void) -{ - if (static_branch_likely(&powerpc_kasan_enabled_key)) - return true; - return false; -} - -#define kasan_arch_is_ready kasan_arch_is_ready -#endif - void kasan_early_init(void); void kasan_mmu_init(void); void kasan_init(void); diff --git a/arch/powerpc/mm/kasan/init_book3s_64.c b/arch/powerpc/mm/kasan= /init_book3s_64.c index 9c5cf2354c8b..c1b78a9cd0a9 100644 --- a/arch/powerpc/mm/kasan/init_book3s_64.c +++ b/arch/powerpc/mm/kasan/init_book3s_64.c @@ -19,8 +19,6 @@ #include #include =20 -DEFINE_STATIC_KEY_FALSE(powerpc_kasan_enabled_key); - static void __init kasan_init_phys_region(void *start, void *end) { unsigned long k_start, k_end, k_cur; @@ -95,8 +93,6 @@ void __init kasan_init(void) */ memset(kasan_early_shadow_page, 0, PAGE_SIZE); =20 - static_branch_inc(&powerpc_kasan_enabled_key); - /* KASAN is now initialized, enable it. */ static_branch_enable(&kasan_flag_enabled); =20 --=20 2.41.0 From nobody Sat Oct 4 21:00:52 2025 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.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 7542525949A for ; Tue, 12 Aug 2025 13:10:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755004227; cv=none; b=pUZS4dnGZxVvGfTKOYUhIYgN2e4vUE4JjB5gxSmqyR2poKOZctj74YhEXcyI+YKSSJffporbDkxmVIYGu44De6iCazWNotv2wgAkYkyOzMA6Lg+edsBYFIkBgFVujR68yqJ2v7ByXDkeVA7iYN/FEU3TPc5Uw6cBSRViHRhO2DM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755004227; c=relaxed/simple; bh=mj4z688+H5GrvzYFvgAeKyyxjw6x0byA0uWwcSgZ7QA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-type; b=N47kjS9v8polpbvPHtPOL5jxGezfoibB/lrpScHBKX+fAE9xV12Kl0eG2ARwSzIs/5x7ajGeElTTOh6N+NiU/meUscovPZpQe3pP0CC4TGgOBZNZFB2FCAnON+eX4KDL9XLDg2nuLxUg/tbiQW56G/38XXeorAiz10Z/Od28O+0= 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=AjFMu9mM; arc=none smtp.client-ip=170.10.133.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="AjFMu9mM" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1755004224; 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=Shp71aTpcjkRwp8fdFozCS7DFDAA9ma8z9v4/SjxSDw=; b=AjFMu9mMHj/koIN2a/83vdrCIASVbbwJyQBeOBV+cv4llwtnAv7jsZ8kd40zFsySRK3TfH 3QFfQDzMCyfbpioEFUJxJwS90D7z/kEel+cDycBMfcRTnlNTk49cIIYoa0QU3jd4Hb03C3 UQbNo/vOySqsNwS1elZSW+AOYFm4Vgo= Received: from mx-prod-mc-02.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-584-DibAMnFxNhOH8o8J4OV6gw-1; Tue, 12 Aug 2025 09:10:21 -0400 X-MC-Unique: DibAMnFxNhOH8o8J4OV6gw-1 X-Mimecast-MFC-AGG-ID: DibAMnFxNhOH8o8J4OV6gw_1755004218 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-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id BD2F4195608A; Tue, 12 Aug 2025 13:10:17 +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 D4E08195608F; Tue, 12 Aug 2025 13:10:07 +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 3/4] arch/um: remove kasan_arch_is_ready() Date: Tue, 12 Aug 2025 21:09:32 +0800 Message-ID: <20250812130933.71593-4-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. And also error out if both CONFIG_STATIC_LINK and CONFIG_KASAN_INLINE are set at the same time as UML supports each of them but done's support both at the same time. And also add code comment to explain why static key kasan_flag_enabled need be deferred to arch_mm_preinit(). Signed-off-by: Sabyrzhan Tasbolatov Signed-off-by: Baoquan He --- arch/um/include/asm/kasan.h | 5 ++--- arch/um/kernel/mem.c | 6 +++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/arch/um/include/asm/kasan.h b/arch/um/include/asm/kasan.h index f97bb1f7b851..b54a4e937fd1 100644 --- a/arch/um/include/asm/kasan.h +++ b/arch/um/include/asm/kasan.h @@ -24,10 +24,9 @@ =20 #ifdef CONFIG_KASAN void kasan_init(void); -extern int kasan_um_is_ready; =20 -#ifdef CONFIG_STATIC_LINK -#define kasan_arch_is_ready() (kasan_um_is_ready) +#if defined(CONFIG_STATIC_LINK) && defined(CONFIG_KASAN_INLINE) +#error UML does not work in KASAN_INLINE mode with STATIC_LINK enabled! #endif #else static inline void kasan_init(void) { } diff --git a/arch/um/kernel/mem.c b/arch/um/kernel/mem.c index 392a23d4ef96..d62f494e0808 100644 --- a/arch/um/kernel/mem.c +++ b/arch/um/kernel/mem.c @@ -35,7 +35,11 @@ void kasan_init(void) */ kasan_map_memory((void *)KASAN_SHADOW_START, KASAN_SHADOW_SIZE); init_task.kasan_depth =3D 0; - kasan_um_is_ready =3D true; + /* + * Since kasan_init() is called before main(), + * KASAN is initialized but the enablement is deferred after + * jump_label_init(). See arch_mm_preinit(). + */ } =20 static void (*kasan_init_ptr)(void) --=20 2.41.0 From nobody Sat Oct 4 21:00:52 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 CCF1F25C706 for ; Tue, 12 Aug 2025 13:10:38 +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=1755004240; cv=none; b=cWeRbOJiGI+dIM1zlJnpA+1jt5cQOwUG1o8RHZ/KQvlq3TFVqqDYVnUMOBVw52B3YcSD/rFzNZcWXG5bS3pd7RsBo/fzOp548914wSWB9ahg0elJXJokr+MFXD/uJPouyiXdEFMcYKosTgSN6spWrVAZPiGyo8QnF+BzMj7Nnbc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755004240; c=relaxed/simple; bh=26ooarSgdO9PSAiMZ0O74U9w8cb5/o/4g4Q76W9o+n0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-type; b=WB6oxlXaHa+GEh2kYMSIwICTtsCcvt/0xNAncJ9WK6F/qeLE7Bm5fBJoUSMh6TMPasOhHhZoOHfZMVA5It1ZVuwKEvywPXbtM4BvfFbtBzTM0+DIBeU/QUfWW7oRXrOfTcPp7bZyz5oE0G6kroJXmiE36ur+nXKCYXXVbU6kr7o= 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=aZ3KaVOw; 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="aZ3KaVOw" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1755004237; 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=90kjOoDlgJxvROpKhCBaV42MFQEOcPlCS7aVoYrLf2Q=; b=aZ3KaVOwTJOy8HWVqLiui874CV75GU2SB5QtkibLAwESLtY1PmsomAa1H+vojBXAYn/ixh yFw5Ffe5hlRkRXpAHfzsAaJlnEWjiZO9IHdyGaZ8jUvlM0yyK03vDxhtPt2hBEHYL4vXy8 5oLTqCyxUude+lDHh5yVMLpU9PQcmhE= 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-675-TQnxb7SJOn-5DJ0f1i7kgA-1; Tue, 12 Aug 2025 09:10:33 -0400 X-MC-Unique: TQnxb7SJOn-5DJ0f1i7kgA-1 X-Mimecast-MFC-AGG-ID: TQnxb7SJOn-5DJ0f1i7kgA_1755004227 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 5A40B1800291; Tue, 12 Aug 2025 13:10:27 +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 7D1B71955F16; Tue, 12 Aug 2025 13:10:18 +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 4/4] mm/kasan: remove kasan_arch_is_ready() Date: Tue, 12 Aug 2025 21:09:33 +0800 Message-ID: <20250812130933.71593-5-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" Now there's no any place where kasan_arch_is_ready() is needed, remove all its invocations. Signed-off-by: Baoquan He --- mm/kasan/common.c | 9 +++------ mm/kasan/generic.c | 9 --------- mm/kasan/kasan.h | 6 ------ mm/kasan/shadow.c | 18 ------------------ 4 files changed, 3 insertions(+), 39 deletions(-) diff --git a/mm/kasan/common.c b/mm/kasan/common.c index 69a848f2a8aa..e48c1fd60edf 100644 --- a/mm/kasan/common.c +++ b/mm/kasan/common.c @@ -271,7 +271,7 @@ static inline void poison_slab_object(struct kmem_cache= *cache, void *object, bool __kasan_slab_pre_free(struct kmem_cache *cache, void *object, unsigned long ip) { - if (!kasan_arch_is_ready() || is_kfence_address(object)) + if (is_kfence_address(object)) return false; return check_slab_allocation(cache, object, ip); } @@ -279,7 +279,7 @@ bool __kasan_slab_pre_free(struct kmem_cache *cache, vo= id *object, bool __kasan_slab_free(struct kmem_cache *cache, void *object, bool init, bool still_accessible) { - if (!kasan_arch_is_ready() || is_kfence_address(object)) + if (is_kfence_address(object)) return false; =20 /* @@ -318,9 +318,6 @@ bool __kasan_slab_free(struct kmem_cache *cache, void *= object, bool init, =20 static inline bool check_page_allocation(void *ptr, unsigned long ip) { - if (!kasan_arch_is_ready()) - return false; - if (ptr !=3D page_address(virt_to_head_page(ptr))) { kasan_report_invalid_free(ptr, ip, KASAN_REPORT_INVALID_FREE); return true; @@ -547,7 +544,7 @@ bool __kasan_mempool_poison_object(void *ptr, unsigned = long ip) return true; } =20 - if (is_kfence_address(ptr) || !kasan_arch_is_ready()) + if (is_kfence_address(ptr)) return true; =20 slab =3D folio_slab(folio); diff --git a/mm/kasan/generic.c b/mm/kasan/generic.c index 8daea5892754..d513e3e2e136 100644 --- a/mm/kasan/generic.c +++ b/mm/kasan/generic.c @@ -168,9 +168,6 @@ static __always_inline bool check_region_inline(const v= oid *addr, if (!kasan_enabled()) return true; =20 - if (!kasan_arch_is_ready()) - return true; - if (unlikely(size =3D=3D 0)) return true; =20 @@ -196,9 +193,6 @@ bool kasan_byte_accessible(const void *addr) { s8 shadow_byte; =20 - if (!kasan_arch_is_ready()) - return true; - shadow_byte =3D READ_ONCE(*(s8 *)kasan_mem_to_shadow(addr)); =20 return shadow_byte >=3D 0 && shadow_byte < KASAN_GRANULE_SIZE; @@ -505,9 +499,6 @@ static void release_alloc_meta(struct kasan_alloc_meta = *meta) =20 static void release_free_meta(const void *object, struct kasan_free_meta *= meta) { - if (!kasan_arch_is_ready()) - return; - /* Check if free meta is valid. */ if (*(u8 *)kasan_mem_to_shadow(object) !=3D KASAN_SLAB_FREE_META) return; diff --git a/mm/kasan/kasan.h b/mm/kasan/kasan.h index 129178be5e64..e0ffc16495d7 100644 --- a/mm/kasan/kasan.h +++ b/mm/kasan/kasan.h @@ -544,12 +544,6 @@ static inline void kasan_poison_last_granule(const voi= d *address, size_t size) { =20 #endif /* CONFIG_KASAN_GENERIC */ =20 -#ifndef kasan_arch_is_ready -static inline bool kasan_arch_is_ready(void) { return true; } -#elif !defined(CONFIG_KASAN_GENERIC) || !defined(CONFIG_KASAN_OUTLINE) -#error kasan_arch_is_ready only works in KASAN generic outline mode! -#endif - #if IS_ENABLED(CONFIG_KASAN_KUNIT_TEST) =20 void kasan_kunit_test_suite_start(void); diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c index 637f2d02d2a3..d8b975282b22 100644 --- a/mm/kasan/shadow.c +++ b/mm/kasan/shadow.c @@ -128,9 +128,6 @@ void kasan_poison(const void *addr, size_t size, u8 val= ue, bool init) if (!kasan_enabled()) return; =20 - if (!kasan_arch_is_ready()) - return; - /* * Perform shadow offset calculation based on untagged address, as * some of the callers (e.g. kasan_poison_new_object) pass tagged @@ -156,9 +153,6 @@ void kasan_poison_last_granule(const void *addr, size_t= size) if (!kasan_enabled()) return; =20 - if (!kasan_arch_is_ready()) - return; - if (size & KASAN_GRANULE_MASK) { u8 *shadow =3D (u8 *)kasan_mem_to_shadow(addr + size); *shadow =3D size & KASAN_GRANULE_MASK; @@ -402,9 +396,6 @@ int kasan_populate_vmalloc(unsigned long addr, unsigned= long size) if (!kasan_enabled()) return 0; =20 - if (!kasan_arch_is_ready()) - return 0; - if (!is_vmalloc_or_module_addr((void *)addr)) return 0; =20 @@ -575,9 +566,6 @@ void kasan_release_vmalloc(unsigned long start, unsigne= d long end, if (!kasan_enabled()) return; =20 - if (!kasan_arch_is_ready()) - return; - region_start =3D ALIGN(start, KASAN_MEMORY_PER_SHADOW_PAGE); region_end =3D ALIGN_DOWN(end, KASAN_MEMORY_PER_SHADOW_PAGE); =20 @@ -626,9 +614,6 @@ void *__kasan_unpoison_vmalloc(const void *start, unsig= ned long size, * with setting memory tags, so the KASAN_VMALLOC_INIT flag is ignored. */ =20 - if (!kasan_arch_is_ready()) - return (void *)start; - if (!is_vmalloc_or_module_addr(start)) return (void *)start; =20 @@ -651,9 +636,6 @@ void *__kasan_unpoison_vmalloc(const void *start, unsig= ned long size, */ void __kasan_poison_vmalloc(const void *start, unsigned long size) { - if (!kasan_arch_is_ready()) - return; - if (!is_vmalloc_or_module_addr(start)) return; =20 --=20 2.41.0