From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: "Anton Johansson" <anjo@rev.ng>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Harsh Prateek Bora" <harshpb@linux.ibm.com>,
"BALATON Zoltan" <balaton@eik.bme.hu>,
"Nicholas Piggin" <npiggin@gmail.com>,
"Glenn Miles" <milesg@linux.ibm.com>,
kvm@vger.kernel.org, qemu-ppc@nongnu.org,
"Pierrick Bouvier" <pierrick.bouvier@linaro.org>,
"Chinmay Rath" <rathc@linux.ibm.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>
Subject: [PATCH 5/8] target/ppc/mmu: Replace legacy ld/st_phys() -> address_space_ld/st()
Date: Thu, 19 Mar 2026 12:19:33 +0100 [thread overview]
Message-ID: <20260319111936.68041-6-philmd@linaro.org> (raw)
In-Reply-To: <20260319111936.68041-1-philmd@linaro.org>
Prefer the address_space_ld/st API over the legacy ld_phys()
because it allow checking for bus access fault.
This code however doesn't check for fault, so we simply inline
the calls (not specifying any memory transaction attribute nor
expecting transation result) per the definition in
"system/memory_ldst_phys_endian.h.inc":
27 static inline uint32_t LD_PHYS(l)(ARG1_DECL, hwaddr addr)
28 {
29 return ADDRESS_SPACE_LD(l)(ARG1, addr, MEMTXATTRS_UNSPECIFIED, NULL);
30 }
28 static inline void glue(stb_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint8_t val)
29 {
30 glue(address_space_stb, SUFFIX)(ARG1, addr, val,
31 MEMTXATTRS_UNSPECIFIED, NULL);
32 }
No logical change intended.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
target/ppc/cpu.c | 3 ++-
target/ppc/mmu-hash32.c | 14 ++++++++++----
2 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/target/ppc/cpu.c b/target/ppc/cpu.c
index f24801a9731..89fad5356b4 100644
--- a/target/ppc/cpu.c
+++ b/target/ppc/cpu.c
@@ -110,7 +110,8 @@ uint64_t ppc_load_epr(CPUPPCState *env)
{
CPUState *cs = env_cpu(env);
- return ldl_phys(cs->as, env->mpic_iack);
+ return address_space_ldl(cs->as, env->mpic_iack,
+ MEMTXATTRS_UNSPECIFIED, NULL);
}
#if defined(TARGET_PPC64)
diff --git a/target/ppc/mmu-hash32.c b/target/ppc/mmu-hash32.c
index 08c9f63a132..81fa7336b76 100644
--- a/target/ppc/mmu-hash32.c
+++ b/target/ppc/mmu-hash32.c
@@ -23,6 +23,7 @@
#include "exec/page-protection.h"
#include "exec/target_page.h"
#include "system/kvm.h"
+#include "system/memory.h"
#include "kvm_ppc.h"
#include "internal.h"
#include "mmu-hash32.h"
@@ -205,14 +206,17 @@ static target_ulong ppc_hash32_load_hpte0(PowerPCCPU *cpu, hwaddr pte_offset)
{
target_ulong base = ppc_hash32_hpt_base(cpu);
- return ldl_phys(CPU(cpu)->as, base + pte_offset);
+ return address_space_ldl(CPU(cpu)->as, base + pte_offset,
+ MEMTXATTRS_UNSPECIFIED, NULL);
}
static target_ulong ppc_hash32_load_hpte1(PowerPCCPU *cpu, hwaddr pte_offset)
{
target_ulong base = ppc_hash32_hpt_base(cpu);
- return ldl_phys(CPU(cpu)->as, base + pte_offset + HASH_PTE_SIZE_32 / 2);
+ return address_space_ldl(CPU(cpu)->as,
+ base + pte_offset + HASH_PTE_SIZE_32 / 2,
+ MEMTXATTRS_UNSPECIFIED, NULL);
}
static hwaddr ppc_hash32_pteg_search(PowerPCCPU *cpu, hwaddr pteg_off,
@@ -253,7 +257,8 @@ static void ppc_hash32_set_r(PowerPCCPU *cpu, hwaddr pte_offset, uint32_t pte1)
hwaddr offset = pte_offset + 6;
/* The HW performs a non-atomic byte update */
- stb_phys(CPU(cpu)->as, base + offset, ((pte1 >> 8) & 0xff) | 0x01);
+ address_space_stb(CPU(cpu)->as, base + offset, ((pte1 >> 8) & 0xff) | 0x01,
+ MEMTXATTRS_UNSPECIFIED, NULL);
}
static void ppc_hash32_set_c(PowerPCCPU *cpu, hwaddr pte_offset, uint64_t pte1)
@@ -262,7 +267,8 @@ static void ppc_hash32_set_c(PowerPCCPU *cpu, hwaddr pte_offset, uint64_t pte1)
hwaddr offset = pte_offset + 7;
/* The HW performs a non-atomic byte update */
- stb_phys(CPU(cpu)->as, base + offset, (pte1 & 0xff) | 0x80);
+ address_space_stb(CPU(cpu)->as, base + offset, (pte1 & 0xff) | 0x80,
+ MEMTXATTRS_UNSPECIFIED, NULL);
}
static hwaddr ppc_hash32_htab_lookup(PowerPCCPU *cpu,
--
2.53.0
next prev parent reply other threads:[~2026-03-19 11:20 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-19 11:19 [PATCH 0/8] target/ppc: Forbid to use legacy ldst_phys() API Philippe Mathieu-Daudé
2026-03-19 11:19 ` [PATCH 1/8] hw/ppc/spapr: Un-inline rtas_load/store() helpers Philippe Mathieu-Daudé
2026-04-20 6:45 ` Harsh Prateek Bora
2026-03-19 11:19 ` [PATCH 2/8] target/ppc: Factor common ppc_load_epr() helper out Philippe Mathieu-Daudé
2026-04-20 6:46 ` Harsh Prateek Bora
2026-03-19 11:19 ` [PATCH 3/8] target/ppc/mmu: Remove unused hash32_store_hpte() helpers Philippe Mathieu-Daudé
2026-04-20 6:51 ` Harsh Prateek Bora
2026-03-19 11:19 ` [PATCH 4/8] target/ppc/mmu: Restrict hash32_load_hpte() helpers scope Philippe Mathieu-Daudé
2026-04-20 6:55 ` Harsh Prateek Bora
2026-03-19 11:19 ` Philippe Mathieu-Daudé [this message]
2026-03-19 12:59 ` [PATCH 5/8] target/ppc/mmu: Replace legacy ld/st_phys() -> address_space_ld/st() BALATON Zoltan
2026-04-19 16:10 ` Philippe Mathieu-Daudé
2026-03-19 11:19 ` [PATCH 6/8] hw/ppc/pegasos: Introduce rtas_ldl() / rtas_stl() helpers Philippe Mathieu-Daudé
2026-03-19 11:19 ` [PATCH 7/8] hw/ppc/pegasos: Replace legacy ld/st_phys() -> address_space_ld/st() Philippe Mathieu-Daudé
2026-03-19 11:19 ` [PATCH 8/8] configs/targets: Restrict the legacy ldst_phys() API on PPC Philippe Mathieu-Daudé
2026-04-19 16:11 ` [PATCH 0/8] target/ppc: Forbid to use legacy ldst_phys() API Philippe Mathieu-Daudé
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260319111936.68041-6-philmd@linaro.org \
--to=philmd@linaro.org \
--cc=anjo@rev.ng \
--cc=balaton@eik.bme.hu \
--cc=harshpb@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=milesg@linux.ibm.com \
--cc=npiggin@gmail.com \
--cc=pbonzini@redhat.com \
--cc=pierrick.bouvier@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=rathc@linux.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox