From: sashiko-bot@kernel.org
To: "Muhammad Usama Anjum" <usama.anjum@arm.com>
Cc: bpf@vger.kernel.org, damon@lists.linux.dev,
linux-trace-kernel@vger.kernel.org,
dri-devel@lists.freedesktop.org,
linux-perf-users@vger.kernel.org,
intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH v3 6/9] mm: add hw_pte_val for HW PTE storage
Date: Tue, 22 Sep 2026 17:22:32 +0000 [thread overview]
Message-ID: <20260922172233.38D431F00893@smtp.kernel.org> (raw)
In-Reply-To: <20260922-pte0-v3-6-5670b8cb9059@arm.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] mm: hw_pte_val() yields an rvalue on x86, breaking its lvalue API promise
--
commit 06b6d3a311b681bd0fa817067b39f468d3e5ca27
Author: Muhammad Usama Anjum <usama.anjum@arm.com>
mm: add hw_pte_val for HW PTE storage
This commit introduces the hw_pte_val() macro to expose the underlying
pte_val() as an lvalue for atomic PTE updates. It provides definitions
for both when hw_pte_t is distinct and when it aliases pte_t.
> diff --git a/include/linux/pgtable_types.h b/include/linux/pgtable_types.h
> index d6c5a7548550b..ee4eace5c3e1c 100644
> --- a/include/linux/pgtable_types.h
> +++ b/include/linux/pgtable_types.h
> @@ -9,9 +9,13 @@
> #ifdef CONFIG_ARCH_HAS_HW_PTE_T
> typedef struct __hw_pte_t { pte_t __pte; } hw_pte_t;
> #define __pte_from_hw(pte) ((pte).__pte)
> +
> +#define hw_pte_val(x) pte_val((x).__pte)
[Severity: Low]
Will this macro actually yield an lvalue on all architectures?
While pte_val(x) is a macro yielding an lvalue on some architectures like
arm64, it is implemented as a static inline function on others such as x86,
s390, and MIPS (e.g., native_pte_val(x)).
Since a function return is an rvalue in C, attempts to use hw_pte_val() as
an lvalue (such as taking its address via &hw_pte_val(pte) for cmpxchg())
will trigger a compiler error like "lvalue required as left operand" on
those architectures.
> #else
> #define hw_pte_t pte_t
> #define __pte_from_hw(pte) (pte)
> +
> +#define hw_pte_val(x) pte_val(x)
[Severity: Low]
Does this fallback definition suffer from the same issue?
Since it relies directly on pte_val(x), it inherits the rvalue limitation
on architectures where pte_val() is an inline function, breaking the intended
lvalue abstraction.
> #endif
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260922-pte0-v3-0-5670b8cb9059@arm.com?part=6
next prev parent reply other threads:[~2026-09-22 17:22 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-22 17:12 [PATCH v3 0/9] mm: distinguish HW PTE pointers from SW PTE value pointers Muhammad Usama Anjum
2026-09-22 17:12 ` [PATCH v3 1/9] mm: introduce hw_pte_t for PTE table storage Muhammad Usama Anjum
2026-09-22 17:20 ` sashiko-bot
2026-09-30 4:13 ` Anshuman Khandual
2026-09-30 15:27 ` Zi Yan
2026-09-22 17:12 ` [PATCH v3 2/9] mm: rename pointers to software PTE values as ptentp Muhammad Usama Anjum
2026-09-22 17:21 ` sashiko-bot
2026-09-30 4:20 ` Anshuman Khandual
2026-09-22 17:12 ` [PATCH v3 3/9] mm: use hw_pte_t for generic PTE table storage Muhammad Usama Anjum
2026-09-22 17:27 ` sashiko-bot
2026-09-30 4:35 ` Anshuman Khandual
2026-09-30 17:40 ` Muhammad Usama Anjum
2026-10-01 11:25 ` David Hildenbrand (Arm)
2026-10-01 11:26 ` David Hildenbrand (Arm)
2026-09-22 17:12 ` [PATCH v3 4/9] mm: convert PTE table entries in ptep_get() Muhammad Usama Anjum
2026-09-22 17:25 ` sashiko-bot
2026-09-30 5:10 ` Anshuman Khandual
2026-09-30 17:46 ` Muhammad Usama Anjum
2026-10-01 11:27 ` David Hildenbrand (Arm)
2026-09-22 17:12 ` [PATCH v3 5/9] mm: convert PTE table entry to pte Muhammad Usama Anjum
2026-09-22 17:19 ` sashiko-bot
2026-10-01 11:17 ` David Hildenbrand (Arm)
2026-10-02 14:57 ` Muhammad Usama Anjum
2026-09-22 17:12 ` [PATCH v3 6/9] mm: add hw_pte_val for HW PTE storage Muhammad Usama Anjum
2026-09-22 17:22 ` sashiko-bot [this message]
2026-10-01 11:19 ` David Hildenbrand (Arm)
2026-10-02 14:59 ` Muhammad Usama Anjum
2026-09-22 17:12 ` [PATCH v3 7/9] mm/kasan: use hw_pte_t for the early shadow PTE table Muhammad Usama Anjum
2026-09-22 17:21 ` sashiko-bot
2026-10-01 11:20 ` David Hildenbrand (Arm)
2026-09-22 17:12 ` [PATCH v3 8/9] drm/i915: use hw_pte_t for PTE range callbacks Muhammad Usama Anjum
2026-09-22 17:23 ` sashiko-bot
2026-10-01 11:21 ` David Hildenbrand (Arm)
2026-09-22 17:12 ` [PATCH v3 9/9] xen: " Muhammad Usama Anjum
2026-09-22 17:30 ` sashiko-bot
2026-10-01 11:22 ` David Hildenbrand (Arm)
2026-09-23 23:16 ` ✗ Fi.CI.BUILD: failure for mm: distinguish HW PTE pointers from SW PTE value pointers Patchwork
2026-09-28 7:09 ` [PATCH v3 0/9] " Alexander Gordeev
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260922172233.38D431F00893@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=damon@lists.linux.dev \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
--cc=usama.anjum@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.