Thread (19 messages) flat view 19 messages, 2 authors, 2d ago

Re: [PATCH v3 9/9] xen: use hw_pte_t for PTE range callbacks

From: sashiko-bot@kernel.org
Date: 2026-09-22 17:30:10
Also in: bpf, damon, dri-devel, intel-gfx, linux-perf-users

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] xen: missing hw_pte_t conversion for x86 Xen callbacks
--

commit cf1ba61f002ea6950852250dfd8d5d0a5b979c23
Author: Muhammad Usama Anjum [off-list ref]

xen: use hw_pte_t for PTE range callbacks

This commit updates Xen callbacks to use the hw_pte_t pointer type, matching
the updated generic PTE range and remapping helpers. It maintains software
PTE values as pte_t to support architectures that select the distinct
hw_pte_t wrapper.
    Generic PTE range and remapping helpers now pass pointers to PTE table
    storage as hw_pte_t *. Update the Xen callbacks to match those interfaces.
    
    Keep software PTE values as pte_t and continue to access them through the
    existing PTE helpers. This is required when Xen is built for an
    architecture that selects the distinct hw_pte_t wrapper.
    
    Reviewed-by: Juergen Gross [off-list ref]
    Signed-off-by: Muhammad Usama Anjum [off-list ref]
[Severity: Low]
Were some x86-specific Xen callbacks missed in this conversion?

Looking at the source, these two callbacks appear to still use the old
pte_t * type signature instead of hw_pte_t *:

arch/x86/xen/grant-table.c:gnttab_apply()
arch/x86/xen/mmu_pv.c:remap_area_pfn_pte_fn()

While this currently compiles because x86 aliases hw_pte_t to pte_t, it looks
like it violates the generic API contract since they are passed to
apply_to_page_range(). Could this cause a build or CFI failure if x86
ever opts into ARCH_HAS_HW_PTE_T?
quoted hunk ↗ jump to hunk
diff --git a/drivers/xen/gntdev.c b/drivers/xen/gntdev.c
index 1dcc4675580ed..b013bcad99b5b 100644
--- a/drivers/xen/gntdev.c
+++ b/drivers/xen/gntdev.c
@@ -301,7 +301,7 @@ void gntdev_put_map(struct gntdev_priv *priv, struct gntdev_grant_map *map)
 
 /* ------------------------------------------------------------------ */
 
-static int find_grant_ptes(pte_t *pte, unsigned long addr, void *data)
+static int find_grant_ptes(hw_pte_t *pte, unsigned long addr, void *data)
 {
 	struct gntdev_grant_map *map = data;
[ ... ]

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260922-pte0-v3-0-5670b8cb9059@arm.com?part=9
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help