This patch would fix the segfaults. But I suppose the followings
are necessary.

- PIIX4PMState::gpe_cpu needs to be saved/loaded somewhere

- gpe_writeb() needs to handle PROC_BASE ... PROC_BASE+31
  like gpe_readb(). To be honest, I don't see why gpe_readb/writeb()
  are used for PROC_BASE...PROC_BASE + 31

- enable/disable_processor() manipulates gpe->sts pointer.
  it should be
  gpe->sts[0] |= PIIX4_CPU_HOTPLUG_STATUS

thanks,  

On Mon, Apr 18, 2011 at 11:44:16AM +0300, Avi Kivity wrote:
> Introduced by a mismerge and segfaults immediately.  Still need proper
> save/restore of this field.
> 
> Signed-off-by: Avi Kivity <a...@redhat.com>
> ---
>  hw/acpi.h       |    1 -
>  hw/acpi_piix4.c |    1 -
>  2 files changed, 0 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/acpi.h b/hw/acpi.h
> index 96f1d5f..c141e65 100644
> --- a/hw/acpi.h
> +++ b/hw/acpi.h
> @@ -133,7 +133,6 @@ struct ACPIGPE {
>  
>      uint8_t *sts;
>      uint8_t *en;
> -    uint8_t *cpu_sts;
>  };
>  typedef struct ACPIGPE ACPIGPE;
>  
> diff --git a/hw/acpi_piix4.c b/hw/acpi_piix4.c
> index 9dc6f43..b582302 100644
> --- a/hw/acpi_piix4.c
> +++ b/hw/acpi_piix4.c
> @@ -235,7 +235,6 @@ static const VMStateDescription vmstate_gpe = {
>      .fields      = (VMStateField []) {
>          VMSTATE_GPE_ARRAY(sts, ACPIGPE),
>          VMSTATE_GPE_ARRAY(en, ACPIGPE),
> -        VMSTATE_UINT8_ARRAY(cpus_sts, struct gpe_regs, 32),
>          VMSTATE_END_OF_LIST()
>      }
>  };
> -- 
> 1.7.4.3
> 

-- 
yamahata
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to