On Thu, Sep 2, 2021 at 9:18 AM Philippe Mathieu-Daudé <f4...@amsat.org> wrote:
> Restrict cpu_exec_interrupt() and its callees to sysemu. > > Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> > --- > target/ppc/cpu.h | 4 ++-- > target/ppc/cpu_init.c | 2 +- > target/ppc/excp_helper.c | 21 +++------------------ > 3 files changed, 6 insertions(+), 21 deletions(-) > > Reviewed-by: Warner Losh <i...@bsdimp.com> > diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h > index 500205229c0..362e7c4c5c7 100644 > --- a/target/ppc/cpu.h > +++ b/target/ppc/cpu.h > @@ -1254,8 +1254,6 @@ DECLARE_OBJ_CHECKERS(PPCVirtualHypervisor, > PPCVirtualHypervisorClass, > PPC_VIRTUAL_HYPERVISOR, TYPE_PPC_VIRTUAL_HYPERVISOR) > #endif /* CONFIG_USER_ONLY */ > > -void ppc_cpu_do_interrupt(CPUState *cpu); > -bool ppc_cpu_exec_interrupt(CPUState *cpu, int int_req); > void ppc_cpu_dump_state(CPUState *cpu, FILE *f, int flags); > hwaddr ppc_cpu_get_phys_page_debug(CPUState *cpu, vaddr addr); > int ppc_cpu_gdb_read_register(CPUState *cpu, GByteArray *buf, int reg); > @@ -1271,6 +1269,8 @@ int ppc64_cpu_write_elf64_note(WriteCoreDumpFunction > f, CPUState *cs, > int ppc32_cpu_write_elf32_note(WriteCoreDumpFunction f, CPUState *cs, > int cpuid, void *opaque); > #ifndef CONFIG_USER_ONLY > +void ppc_cpu_do_interrupt(CPUState *cpu); > +bool ppc_cpu_exec_interrupt(CPUState *cpu, int int_req); > void ppc_cpu_do_system_reset(CPUState *cs); > void ppc_cpu_do_fwnmi_machine_check(CPUState *cs, target_ulong vector); > extern const VMStateDescription vmstate_ppc_cpu; > diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c > index ad7abc6041a..6aad01d1d3a 100644 > --- a/target/ppc/cpu_init.c > +++ b/target/ppc/cpu_init.c > @@ -9014,10 +9014,10 @@ static const struct SysemuCPUOps ppc_sysemu_ops = { > > static const struct TCGCPUOps ppc_tcg_ops = { > .initialize = ppc_translate_init, > - .cpu_exec_interrupt = ppc_cpu_exec_interrupt, > .tlb_fill = ppc_cpu_tlb_fill, > > #ifndef CONFIG_USER_ONLY > + .cpu_exec_interrupt = ppc_cpu_exec_interrupt, > .do_interrupt = ppc_cpu_do_interrupt, > .cpu_exec_enter = ppc_cpu_exec_enter, > .cpu_exec_exit = ppc_cpu_exec_exit, > diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c > index 7b6ac16eef7..d7e32ee107e 100644 > --- a/target/ppc/excp_helper.c > +++ b/target/ppc/excp_helper.c > @@ -40,24 +40,8 @@ > > > > /*****************************************************************************/ > /* Exception processing */ > -#if defined(CONFIG_USER_ONLY) > -void ppc_cpu_do_interrupt(CPUState *cs) > -{ > - PowerPCCPU *cpu = POWERPC_CPU(cs); > - CPUPPCState *env = &cpu->env; > +#if !defined(CONFIG_USER_ONLY) > > - cs->exception_index = POWERPC_EXCP_NONE; > - env->error_code = 0; > -} > - > -static void ppc_hw_interrupt(CPUPPCState *env) > -{ > - CPUState *cs = env_cpu(env); > - > - cs->exception_index = POWERPC_EXCP_NONE; > - env->error_code = 0; > -} > -#else /* defined(CONFIG_USER_ONLY) */ > static inline void dump_syscall(CPUPPCState *env) > { > qemu_log_mask(CPU_LOG_INT, "syscall r0=%016" PRIx64 > @@ -1113,7 +1097,6 @@ void ppc_cpu_do_fwnmi_machine_check(CPUState *cs, > target_ulong vector) > > powerpc_set_excp_state(cpu, vector, msr); > } > -#endif /* !CONFIG_USER_ONLY */ > > bool ppc_cpu_exec_interrupt(CPUState *cs, int interrupt_request) > { > @@ -1130,6 +1113,8 @@ bool ppc_cpu_exec_interrupt(CPUState *cs, int > interrupt_request) > return false; > } > > +#endif /* !CONFIG_USER_ONLY */ > + > #if defined(DEBUG_OP) > static void cpu_dump_rfi(target_ulong RA, target_ulong msr) > { > -- > 2.31.1 > >