On Sat, 15 Aug 2026 at 21:38, Richard Henderson
<[email protected]> wrote:
>
> Propagate the API change down one step further within cputlb.c.
>
> Signed-off-by: Richard Henderson <[email protected]>
> ---
>  accel/tcg/cputlb.c | 37 ++++++++++++++++++++-----------------
>  1 file changed, 20 insertions(+), 17 deletions(-)
>
> diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c
> index c2ea31a397..b8c23b2948 100644
> --- a/accel/tcg/cputlb.c
> +++ b/accel/tcg/cputlb.c
> @@ -1358,8 +1358,8 @@ static void notdirty_write(CPUState *cpu, vaddr 
> mem_vaddr, unsigned size,
>      }
>  }
>
> -static int probe_access_internal(CPUState *cpu, vaddr addr,
> -                                 int fault_size, MMUAccessType access_type,
> +static int probe_access_internal(CPUState *cpu, vaddr addr, vaddr first,
> +                                 vaddr last, MMUAccessType access_type,
>                                   int mmu_idx, bool nonfault,
>                                   void **phost, CPUTLBEntryFull **pfull,
>                                   uintptr_t retaddr, bool check_mem_cbs)
> @@ -1375,7 +1375,7 @@ static int probe_access_internal(CPUState *cpu, vaddr 
> addr,
>      if (!tlb_hit_page(tlb_addr, page_addr)) {
>          if (!victim_tlb_hit(cpu, mmu_idx, index, access_type, page_addr)) {
>              if (!tlb_fill_align(cpu, addr, access_type, mmu_idx,
> -                                0, fault_size, nonfault, retaddr)) {
> +                                0, last - addr + 1, nonfault, retaddr)) {
>                  /* Non-faulting page table read failed.  */
>                  *phost = NULL;
>                  *pfull = NULL;
> @@ -1423,7 +1423,7 @@ int probe_access_full(CPUArchState *env, vaddr addr, 
> vaddr first, vaddr last,
>      assert(addr <= last);
>      assert(((first ^ last) & TARGET_PAGE_MASK) == 0);
>
> -    flags = probe_access_internal(env_cpu(env), addr, last - addr + 1,
> +    flags = probe_access_internal(env_cpu(env), addr, first, last,
>                                    access_type, mmu_idx, nonfault,
>                                    phost, pfull, retaddr, true);
>
> @@ -1440,6 +1440,7 @@ int probe_access_full_mmu(CPUArchState *env, vaddr 
> addr, int size,
>                            MMUAccessType access_type, int mmu_idx,
>                            void **phost, CPUTLBEntryFull **pfull)
>  {
> +    vaddr last = size ? addr + size - 1 : addr;

This can never overflow for the convenient reason that all four callers to
probe_access_full_mmu() pass a size of zero :-)

Do we update probe_access_full_mmu() to the first/last convention later
in this series ? I couldn't see anywhere we do that, but maybe I missed it.

Reviewed-by: Peter Maydell <[email protected]>

thanks
-- PMM

Reply via email to