[RFC PATCH v2 114/137] hw/xtensa: Give allocated IRQs an owner and name

Alexander Graf <[email protected]>
Newsgroups org.nongnu.qemu-arm,org.nongnu.qemu-devel,org.nongnu.qemu-riscv
Message-ID <[email protected]>
Thread an Object *owner through xtensa_mx_pic_init() and use the CPU
object as owner for the per-CPU IRQ input arrays.

AI-used-for: code (refactoring)
Signed-off-by: Alexander Graf <[email protected]>
---
 hw/xtensa/mx_pic.c         | 4 ++--
 hw/xtensa/pic_cpu.c        | 5 +++--
 hw/xtensa/xtfpga.c         | 2 +-
 include/hw/xtensa/mx_pic.h | 2 +-
 4 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/hw/xtensa/mx_pic.c b/hw/xtensa/mx_pic.c
index 9959bec5f2..f698d592f0 100644
--- a/hw/xtensa/mx_pic.c
+++ b/hw/xtensa/mx_pic.c
@@ -341,12 +341,12 @@ static void xtensa_mx_pic_set_irq(void *opaque, int irq, int active)
     }
 }
 
-XtensaMxPic *xtensa_mx_pic_init(unsigned n_irq)
+XtensaMxPic *xtensa_mx_pic_init(Object *owner, unsigned n_irq)
 {
     XtensaMxPic *mx = g_new0(XtensaMxPic, 1);
 
     mx->n_irq = n_irq + 1;
-    mx->irq_inputs = qemu_allocate_irqs_orphan(xtensa_mx_pic_set_irq, mx,
+    mx->irq_inputs = qemu_allocate_irqs(owner, "irq", xtensa_mx_pic_set_irq, mx,
                                         mx->n_irq);
     return mx;
 }
diff --git a/hw/xtensa/pic_cpu.c b/hw/xtensa/pic_cpu.c
index c3163a8b6c..496c83a298 100644
--- a/hw/xtensa/pic_cpu.c
+++ b/hw/xtensa/pic_cpu.c
@@ -100,9 +100,10 @@ static void xtensa_set_runstall(void *opaque, int irq, int active)
 
 void xtensa_irq_init(CPUXtensaState *env)
 {
+    Object *cpu = OBJECT(env_cpu(env));
     unsigned i;
 
-    env->irq_inputs = qemu_allocate_irqs_orphan(xtensa_set_irq, env,
+    env->irq_inputs = qemu_allocate_irqs(cpu, "irq-in", xtensa_set_irq, env,
                                          env->config->ninterrupt);
     if (xtensa_option_enabled(env->config, XTENSA_OPTION_TIMER_INTERRUPT)) {
         env->time_base = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL);
@@ -118,7 +119,7 @@ void xtensa_irq_init(CPUXtensaState *env)
 
         env->ext_irq_inputs[i] = env->irq_inputs[irq];
     }
-    env->runstall_irq = qemu_allocate_irq_orphan(xtensa_set_runstall, env, 0);
+    env->runstall_irq = qemu_allocate_irq(cpu, "runstall", xtensa_set_runstall, env, 0);
 }
 
 qemu_irq *xtensa_get_extints(CPUXtensaState *env)
diff --git a/hw/xtensa/xtfpga.c b/hw/xtensa/xtfpga.c
index f0c21180a2..6ec0822a96 100644
--- a/hw/xtensa/xtfpga.c
+++ b/hw/xtensa/xtfpga.c
@@ -247,7 +247,7 @@ static void xtfpga_init(const XtfpgaBoardDesc *board, MachineState *machine)
     Object *mo = OBJECT(machine);
 
     if (smp_cpus > 1) {
-        mx_pic = xtensa_mx_pic_init(31);
+        mx_pic = xtensa_mx_pic_init(mo, 31);
         qemu_register_reset(xtensa_mx_pic_reset, mx_pic);
     }
     for (n = 0; n < smp_cpus; n++) {
diff --git a/include/hw/xtensa/mx_pic.h b/include/hw/xtensa/mx_pic.h
index 01d5ea884e..212cf91e78 100644
--- a/include/hw/xtensa/mx_pic.h
+++ b/include/hw/xtensa/mx_pic.h
@@ -33,7 +33,7 @@
 struct XtensaMxPic;
 typedef struct XtensaMxPic XtensaMxPic;
 
-XtensaMxPic *xtensa_mx_pic_init(unsigned n_extint);
+XtensaMxPic *xtensa_mx_pic_init(Object *owner, unsigned n_extint);
 void xtensa_mx_pic_reset(void *opaque);
 MemoryRegion *xtensa_mx_pic_register_cpu(Object *owner, XtensaMxPic *mx,
                                          qemu_irq *irq,
-- 
2.47.1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.