From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id AB48441D4FD; Thu, 6 Aug 2026 08:40:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786005652; cv=none; b=mIa/gun5tnMAl9AMZcrvfx1gxb2zqYQZlWTMolVZrXz/CgEsI3ppusCzKXG8F8jVzXZdXQq5vIhwq1LYq3lDIZRgzZ9/IvoBe2ILs/jaS8IMFRzBk61Ms3s+wMcLsjsFMvvMe5SIVydsZZqECupef/LK8jvxptghHpJ11yR6US4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786005652; c=relaxed/simple; bh=DTTtIRekIWF5l2t5St3KvKIy8eTeym6aWT0fxyUq96k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jIznq5NEuwWhJ9A+w+KLWGkHfM4a2MMWB560eotaW/KJURjXpAiQDoQ5g9oNS7PkNiI92EavIHw6dLEkCMMlBJhS0OH4JUbeAfF7j98SRU4sUEzyP044BhbiHEaVaGVIM7fEODyufLgDGydEACvZ8OlRK9z6pNQtOppi1SJzTjI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b=t/Ynr+ej; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b="t/Ynr+ej" Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 20025153B; Thu, 6 Aug 2026 01:40:46 -0700 (PDT) Received: from e142334-100.cambridge.arm.com (e142334-100.cambridge.arm.com [10.2.198.93]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 643063F632; Thu, 6 Aug 2026 01:40:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss; t=1786005650; bh=DTTtIRekIWF5l2t5St3KvKIy8eTeym6aWT0fxyUq96k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=t/Ynr+ejNvl4R99JThgrl19rvWFbBsiFV4hn5i1ECdKW0th4VOZ7KbW1N62KnLaza TGn2qP6Pu9ZcqkbElZvF+YoQ4TJ4dUl2ixVRmZMzHmEnq7CwFY1Ip2FbKjsKbj8QSs SKPo2pQcwBYzu1+FTzMJdgVouKkCbA21MTO5pHvM= From: Muhammad Usama Anjum To: Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Simona Vetter , Dimitri Sivanich , Arnd Bergmann , Greg Kroah-Hartman , "James E.J. Bottomley" , Helge Deller , Juergen Gross , Stefano Stabellini , Muchun Song , Oscar Salvador , Andrew Morton , "Liam R. Howlett" , Lorenzo Stoakes , Will Deacon , "Aneesh Kumar K.V" , Nick Piggin , Peter Zijlstra , Andrey Ryabinin , David Hildenbrand , Pasha Tatashin , Chris Li , Kairui Song , Uladzislau Rezki , Steven Rostedt , Masami Hiramatsu , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Eduard Zingerman , Kumar Kartikeya Dwivedi , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , SJ Park , "Matthew Wilcox (Oracle)" , Jan Kara , Jason Gunthorpe , Leon Romanovsky , Miaohe Lin , Dennis Zhou , Tejun Heo , Christoph Lameter , Mike Rapoport , Johannes Weiner , ziy@nvidia.com, pfalcato@suse.de, agordeev@linux.ibm.com, ryan.roberts@arm.com Cc: Muhammad Usama Anjum , linux-kernel@vger.kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-parisc@vger.kernel.org, xen-devel@lists.xenproject.org, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-arch@vger.kernel.org, kasan-dev@googlegroups.com, linux-trace-kernel@vger.kernel.org, bpf@vger.kernel.org, linux-perf-users@vger.kernel.org, damon@lists.linux.dev Subject: [PATCH 7/9] mm/kasan: use hw_pte_t for the early shadow PTE table Date: Thu, 6 Aug 2026 09:38:45 +0100 Message-ID: <20260806083926.1807279-8-usama.anjum@arm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260806083926.1807279-1-usama.anjum@arm.com> References: <20260806083926.1807279-1-usama.anjum@arm.com> Precedence: bulk X-Mailing-List: linux-trace-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit kasan_early_shadow_pte is a complete PTE table rather than a standalone PTE value. Declare and define its elements as hw_pte_t so the object uses the PTE table storage type. Read the first element through ptep_get(), which returns the logical pte_t value expected by note_page_pte(), instead of accessing hw_pte_t storage directly. This also uses the accessor selected by the architecture. No architecture selects ARCH_HAS_HW_PTE_T at this point, so the storage representation remains unchanged. Signed-off-by: Muhammad Usama Anjum --- Changes since RFC v1: - Update the description for the architecture opt-in model. --- include/linux/kasan.h | 2 +- mm/kasan/init.c | 2 +- mm/ptdump.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/linux/kasan.h b/include/linux/kasan.h index bf233bde68c7e..ff41949c0ac08 100644 --- a/include/linux/kasan.h +++ b/include/linux/kasan.h @@ -51,7 +51,7 @@ typedef unsigned int __bitwise kasan_vmalloc_flags_t; #endif extern unsigned char kasan_early_shadow_page[PAGE_SIZE]; -extern pte_t kasan_early_shadow_pte[MAX_PTRS_PER_PTE + PTE_HWTABLE_PTRS]; +extern hw_pte_t kasan_early_shadow_pte[MAX_PTRS_PER_PTE + PTE_HWTABLE_PTRS]; extern pmd_t kasan_early_shadow_pmd[MAX_PTRS_PER_PMD]; extern pud_t kasan_early_shadow_pud[MAX_PTRS_PER_PUD]; extern p4d_t kasan_early_shadow_p4d[MAX_PTRS_PER_P4D]; diff --git a/mm/kasan/init.c b/mm/kasan/init.c index 30c5266eaf37e..9bbc2a41d23f0 100644 --- a/mm/kasan/init.c +++ b/mm/kasan/init.c @@ -64,7 +64,7 @@ static inline bool kasan_pmd_table(pud_t pud) return false; } #endif -pte_t kasan_early_shadow_pte[MAX_PTRS_PER_PTE + PTE_HWTABLE_PTRS] +hw_pte_t kasan_early_shadow_pte[MAX_PTRS_PER_PTE + PTE_HWTABLE_PTRS] __bss_pgtbl; static inline bool kasan_pte_table(pmd_t pmd) diff --git a/mm/ptdump.c b/mm/ptdump.c index 376880071ca2a..8f19f20be3c44 100644 --- a/mm/ptdump.c +++ b/mm/ptdump.c @@ -19,7 +19,7 @@ static inline int note_kasan_page_table(struct mm_walk *walk, { struct ptdump_state *st = walk->private; - st->note_page_pte(st, addr, kasan_early_shadow_pte[0]); + st->note_page_pte(st, addr, ptep_get(kasan_early_shadow_pte)); walk->action = ACTION_CONTINUE; -- 2.47.3