Paolo Bonzini <pbonz...@redhat.com> writes: > From: Alex Bennée <alex.ben...@linaro.org> > > CPUState is a fairly common pointer to pass to these helpers. This means > if you need other arguments for the async_run_on_cpu case you end up > having to do a g_malloc to stuff additional data into the routine. For > the current users this isn't a massive deal but for MTTCG this gets > cumbersome when the only other parameter is often an address. > > This adds the typedef run_on_cpu_func for helper functions which has an > explicit CPUState * passed as the first parameter. All the users of > run_on_cpu and async_run_on_cpu have had their helpers updated to use > CPUState where available. > > Signed-off-by: Alex Bennée <alex.ben...@linaro.org> > [Sergey Fedorov: > - eliminate more CPUState in user data; > - remove unnecessary user data passing; > - fix target-s390x/kvm.c and target-s390x/misc_helper.c] > Signed-off-by: Sergey Fedorov <sergey.fedo...@linaro.org> > Acked-by: David Gibson <da...@gibson.dropbear.id.au> (ppc parts) > Reviewed-by: Christian Borntraeger <borntrae...@de.ibm.com> (s390 parts) > Signed-off-by: Alex Bennée <alex.ben...@linaro.org> > Message-Id: <1470158864-17651-3-git-send-email-alex.ben...@linaro.org> > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > cpus.c | 15 ++++--- > hw/i386/kvm/apic.c | 3 +- > hw/i386/kvmvapic.c | 6 +-- > hw/ppc/ppce500_spin.c | 31 +++++---------- > hw/ppc/spapr.c | 6 +-- > hw/ppc/spapr_hcall.c | 17 ++++---- > include/qom/cpu.h | 8 ++-- > kvm-all.c | 21 ++++------ > target-i386/helper.c | 19 ++++----- > target-i386/kvm.c | 6 +-- > target-s390x/cpu.c | 4 +- > target-s390x/cpu.h | 7 +--- > target-s390x/kvm.c | 98 > +++++++++++++++++++++++----------------------- > target-s390x/misc_helper.c | 4 +- > 14 files changed, 108 insertions(+), 137 deletions(-) > <snip> > > diff --git a/hw/i386/kvmvapic.c b/hw/i386/kvmvapic.c > index 3bf1ddd..1bc02fb 100644 > --- a/hw/i386/kvmvapic.c > +++ b/hw/i386/kvmvapic.c
There is also a new conflict that needs fixing in apic.c on your next re-base for: static void kvm_apic_put(CPUState *cs, void *data) > @@ -483,7 +483,7 @@ typedef struct VAPICEnableTPRReporting { > bool enable; > } VAPICEnableTPRReporting; > > -static void vapic_do_enable_tpr_reporting(void *data) > +static void vapic_do_enable_tpr_reporting(CPUState *cpu, void *data) > { > VAPICEnableTPRReporting *info = data; > > @@ -734,10 +734,10 @@ static void vapic_realize(DeviceState *dev, Error > **errp) > nb_option_roms++; > } > > -static void do_vapic_enable(void *data) > +static void do_vapic_enable(CPUState *cs, void *data) > { > VAPICROMState *s = data; > - X86CPU *cpu = X86_CPU(first_cpu); > + X86CPU *cpu = X86_CPU(cs); > > static const uint8_t enabled = 1; > cpu_physical_memory_write(s->vapic_paddr + offsetof(VAPICState, enabled), > diff --git a/hw/ppc/ppce500_spin.c b/hw/ppc/ppce500_spin.c > index 22c584e..8e16f65 100644 > --- a/hw/ppc/ppce500_spin.c > +++ b/hw/ppc/ppce500_spin.c > @@ -54,11 +54,6 @@ typedef struct SpinState { > SpinInfo spin[MAX_CPUS]; > } SpinState; > > -typedef struct spin_kick { > - PowerPCCPU *cpu; > - SpinInfo *spin; > -} SpinKick; > - > static void spin_reset(void *opaque) -- Alex Bennée