[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PATCH v4 4/6] xics: drop ICPStateClass::cpu_setup() hand
From: |
Cédric Le Goater |
Subject: |
Re: [Qemu-ppc] [PATCH v4 4/6] xics: drop ICPStateClass::cpu_setup() handler |
Date: |
Thu, 8 Jun 2017 16:09:55 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 |
On 06/08/2017 03:43 PM, Greg Kurz wrote:
> The cpu_setup() handler is only implemented by xics_kvm, where it really
> does a typical "realize" job. Moreover, the realize() handler is called
> shortly after cpu_setup(), on the same path.
>
> This patch converts xics_kvm to implement realize() instead of cpu_setup().
>
> Signed-off-by: Greg Kurz <address@hidden>
Reviewed-by: Cédric Le Goater <address@hidden>
Thanks,
C.
> ---
> hw/intc/xics.c | 4 ----
> hw/intc/xics_kvm.c | 12 ++++++------
> include/hw/ppc/xics.h | 1 -
> 3 files changed, 6 insertions(+), 11 deletions(-)
>
> diff --git a/hw/intc/xics.c b/hw/intc/xics.c
> index fdbfddffeea5..7ccfb53c55a0 100644
> --- a/hw/intc/xics.c
> +++ b/hw/intc/xics.c
> @@ -324,10 +324,6 @@ static void icp_realize(DeviceState *dev, Error **errp)
> cpu->intc = OBJECT(icp);
> icp->cs = CPU(obj);
>
> - if (icpc->cpu_setup) {
> - icpc->cpu_setup(icp, cpu);
> - }
> -
> env = &cpu->env;
> switch (PPC_INPUT(env)) {
> case PPC_FLAGS_INPUT_POWER7:
> diff --git a/hw/intc/xics_kvm.c b/hw/intc/xics_kvm.c
> index 41c5b9439562..3091ad3ac2c8 100644
> --- a/hw/intc/xics_kvm.c
> +++ b/hw/intc/xics_kvm.c
> @@ -115,9 +115,9 @@ static void icp_kvm_reset(ICPState *icp)
> icp_set_kvm_state(icp, 1);
> }
>
> -static void icp_kvm_cpu_setup(ICPState *icp, PowerPCCPU *cpu)
> +static void icp_kvm_realize(ICPState *icp, Error **errp)
> {
> - CPUState *cs = CPU(cpu);
> + CPUState *cs = icp->cs;
> KVMEnabledICP *enabled_icp;
> unsigned long vcpu_id = kvm_arch_vcpu_id(cs);
> int ret;
> @@ -139,9 +139,9 @@ static void icp_kvm_cpu_setup(ICPState *icp, PowerPCCPU
> *cpu)
>
> ret = kvm_vcpu_enable_cap(cs, KVM_CAP_IRQ_XICS, 0, kernel_xics_fd,
> vcpu_id);
> if (ret < 0) {
> - error_report("Unable to connect CPU%ld to kernel XICS: %s", vcpu_id,
> - strerror(errno));
> - exit(1);
> + error_setg(errp, "Unable to connect CPU%ld to kernel XICS: %s",
> vcpu_id,
> + strerror(errno));
> + return;
> }
> enabled_icp = g_malloc(sizeof(*enabled_icp));
> enabled_icp->vcpu_id = vcpu_id;
> @@ -154,7 +154,7 @@ static void icp_kvm_class_init(ObjectClass *klass, void
> *data)
>
> icpc->pre_save = icp_get_kvm_state;
> icpc->post_load = icp_set_kvm_state;
> - icpc->cpu_setup = icp_kvm_cpu_setup;
> + icpc->realize = icp_kvm_realize;
> icpc->reset = icp_kvm_reset;
> }
>
> diff --git a/include/hw/ppc/xics.h b/include/hw/ppc/xics.h
> index 37b8fb1e8817..28d248abad61 100644
> --- a/include/hw/ppc/xics.h
> +++ b/include/hw/ppc/xics.h
> @@ -68,7 +68,6 @@ struct ICPStateClass {
> void (*realize)(ICPState *icp, Error **errp);
> void (*pre_save)(ICPState *icp);
> int (*post_load)(ICPState *icp, int version_id);
> - void (*cpu_setup)(ICPState *icp, PowerPCCPU *cpu);
> void (*reset)(ICPState *icp);
> };
>
>
- Re: [Qemu-ppc] [PATCH v4 1/6] xics: introduce macros for ICP/ICS link properties, (continued)
- Re: [Qemu-ppc] [PATCH v4 1/6] xics: introduce macros for ICP/ICS link properties, Greg Kurz, 2017/06/08
- Re: [Qemu-ppc] [PATCH v4 1/6] xics: introduce macros for ICP/ICS link properties, Cédric Le Goater, 2017/06/08
- Re: [Qemu-ppc] [PATCH v4 1/6] xics: introduce macros for ICP/ICS link properties, Greg Kurz, 2017/06/08
- Re: [Qemu-ppc] [PATCH v4 1/6] xics: introduce macros for ICP/ICS link properties, Cédric Le Goater, 2017/06/08
- Re: [Qemu-ppc] [PATCH v4 1/6] xics: introduce macros for ICP/ICS link properties, David Gibson, 2017/06/08
- Re: [Qemu-ppc] [PATCH v4 1/6] xics: introduce macros for ICP/ICS link properties, Cédric Le Goater, 2017/06/09
[Qemu-ppc] [PATCH v4 2/6] xics: pass appropriate types to realize() handlers., Greg Kurz, 2017/06/08
[Qemu-ppc] [PATCH v4 3/6] xics: setup cpu at realize time, Greg Kurz, 2017/06/08
[Qemu-ppc] [PATCH v4 4/6] xics: drop ICPStateClass::cpu_setup() handler, Greg Kurz, 2017/06/08
- Re: [Qemu-ppc] [PATCH v4 4/6] xics: drop ICPStateClass::cpu_setup() handler,
Cédric Le Goater <=
[Qemu-ppc] [PATCH v4 5/6] xics: directly register ICPState objects to vmstate, Greg Kurz, 2017/06/08
[Qemu-ppc] [PATCH v4 6/6] spapr: fix migration of ICPState objects from/to older QEMU, Greg Kurz, 2017/06/08
Re: [Qemu-ppc] [PATCH v4 0/6] spapr/xics: fix migration of older machine types, David Gibson, 2017/06/08