Still:
s/address_space_ldl_be/address_space_ldq_be/
in the subject.
Thomas
On 06/02/2026 19.19, Philippe Mathieu-Daudé wrote:
> address_space_read/write() is meant for accessing random
> amount of memory blobs. When the access size is known,
> use the address_space_ld/st() API which can directly swap
> endianness.
>
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> Reviewed-by: Eric Farman <farman@linux.ibm.com>
> ---
> target/s390x/mmu_helper.c | 11 ++++-------
> 1 file changed, 4 insertions(+), 7 deletions(-)
>
> diff --git a/target/s390x/mmu_helper.c b/target/s390x/mmu_helper.c
> index 026502a3e40..30f09ec3de4 100644
> --- a/target/s390x/mmu_helper.c
> +++ b/target/s390x/mmu_helper.c
> @@ -108,6 +108,7 @@ static inline bool read_table_entry(CPUS390XState *env, hwaddr gaddr,
> uint64_t *entry)
> {
> CPUState *cs = env_cpu(env);
> + MemTxResult ret;
>
> /*
> * According to the PoP, these table addresses are "unpredictably real
> @@ -116,13 +117,9 @@ static inline bool read_table_entry(CPUS390XState *env, hwaddr gaddr,
> *
> * We treat them as absolute addresses and don't wrap them.
> */
> - if (unlikely(address_space_read(cs->as, gaddr, MEMTXATTRS_UNSPECIFIED,
> - entry, sizeof(*entry)) !=
> - MEMTX_OK)) {
> - return false;
> - }
> - *entry = be64_to_cpu(*entry);
> - return true;
> + *entry = address_space_ldq_be(cs->as, gaddr, MEMTXATTRS_UNSPECIFIED, &ret);
> +
> + return ret == MEMTX_OK;
> }
>
> static int mmu_translate_asce(CPUS390XState *env, target_ulong vaddr,