On Thu, Apr 30, 2026 at 10:38:03AM +0100, Peter Maydell wrote: > Currently cpu_memory_rw_debug() assumes page-granularity for translations, > and it works in a loop where each iteration translates for the vaddr > rounded down to a page boundary and then copies up to the end of the > page boundary. > > Rewrite it to use the new cpu_translate_for_debug(): we no longer want > to round down the input address, and the boundary we copy up to is now > determined by the lg_page_size it returns rather than being assumed > to be page-sized. > > This, together with the implementation of translate_for_debug for > Arm targets, fixes the bug where semihosting would incorrectly > fail to access parameter blocks that were in memory where the > start of the 4K region they were in was inaccessible due to MPU > region settings, even if the parameter block itself was readable. > > Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3292 > Signed-off-by: Peter Maydell <[email protected]> > Message-id: [email protected]
Acked-by: Peter Xu <[email protected]> -- Peter Xu
