Re: [PATCH v3 8/9] drm/i915: use hw_pte_t for PTE range callbacks

From: David Hildenbrand (Arm)

Date: Thu Oct 01 2026 - 07:33:52 EST


On 9/22/26 19:12, Muhammad Usama Anjum wrote:
> apply_to_page_range() now passes PTE table storage to its callback as
> hw_pte_t *. Update the i915 remap and selftest callbacks to match the new
> type.
>
> Continue to use ptep_get() for software PTE values and set_pte_at() for
> updates.
> The type remains an alias of pte_t on x86 until that architecture opts in.
>
> Signed-off-by: Muhammad Usama Anjum <usama.anjum@xxxxxxx>
> ---
> Changes since v1:
> - Use software PTE value terminology.
>
> Changes since RFC v1:
> - Clarify the effect on architectures that have not opted in.
> ---
> drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c | 4 ++--
> drivers/gpu/drm/i915/i915_mm.c | 4 ++--
> 2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
> index d01acfb7d93d0..056faf4a3618b 100644
> --- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
> +++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
> @@ -1690,7 +1690,7 @@ static int igt_mmap_gpu(void *arg)
> return 0;
> }
>
> -static int check_present_pte(pte_t *pte, unsigned long addr, void *data)
> +static int check_present_pte(hw_pte_t *pte, unsigned long addr, void *data)
> {
> pte_t ptent = ptep_get(pte);
>
> @@ -1703,7 +1703,7 @@ static int check_present_pte(pte_t *pte, unsigned long addr, void *data)
> return 0;
> }
>
> -static int check_absent_pte(pte_t *pte, unsigned long addr, void *data)
> +static int check_absent_pte(hw_pte_t *pte, unsigned long addr, void *data)
> {
> pte_t ptent = ptep_get(pte);
>
> diff --git a/drivers/gpu/drm/i915/i915_mm.c b/drivers/gpu/drm/i915/i915_mm.c
> index fd89e7c7d8d6f..aab88e8edf946 100644
> --- a/drivers/gpu/drm/i915/i915_mm.c
> +++ b/drivers/gpu/drm/i915/i915_mm.c
> @@ -48,7 +48,7 @@ static inline unsigned long sgt_pfn(const struct remap_pfn *r)
> return r->sgt.pfn + (r->sgt.curr >> PAGE_SHIFT);
> }
>
> -static int remap_sg(pte_t *pte, unsigned long addr, void *data)
> +static int remap_sg(hw_pte_t *pte, unsigned long addr, void *data)
> {
> struct remap_pfn *r = data;
>
> @@ -70,7 +70,7 @@ static int remap_sg(pte_t *pte, unsigned long addr, void *data)
> #define EXPECTED_FLAGS (VM_PFNMAP | VM_DONTEXPAND | VM_DONTDUMP)
>
> #if IS_ENABLED(CONFIG_X86)
> -static int remap_pfn(pte_t *pte, unsigned long addr, void *data)
> +static int remap_pfn(hw_pte_t *pte, unsigned long addr, void *data)
> {
> struct remap_pfn *r = data;
>
>

We really have to get rid of apply_to_page_range(). A horrible interface for
drivers to hack around stuff.

For the time being

Acked-by: David Hildenbrand (Arm) <david@xxxxxxxxxx>

--
Cheers,

David