mirror of https://github.com/xemu-project/xemu.git
Revert "apic: save apic_delivered flag"
This reverts commit 07bfa35477
.
The global variable is only read as part of a
apic_reset_irq_delivered();
qemu_irq_raise(s->irq);
if (!apic_get_irq_delivered()) {
sequence, so the value never matters at migration time.
Reported-by: Dr. David Alan Gilbert <dglibert@redhat.com>
Cc: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
e4548bb640
commit
5354edd286
|
@ -387,25 +387,6 @@ static bool apic_common_sipi_needed(void *opaque)
|
||||||
return s->wait_for_sipi != 0;
|
return s->wait_for_sipi != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool apic_irq_delivered_needed(void *opaque)
|
|
||||||
{
|
|
||||||
APICCommonState *s = APIC_COMMON(opaque);
|
|
||||||
return s->cpu == X86_CPU(first_cpu) && apic_irq_delivered != 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void apic_irq_delivered_pre_save(void *opaque)
|
|
||||||
{
|
|
||||||
APICCommonState *s = APIC_COMMON(opaque);
|
|
||||||
s->apic_irq_delivered = apic_irq_delivered;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int apic_irq_delivered_post_load(void *opaque, int version_id)
|
|
||||||
{
|
|
||||||
APICCommonState *s = APIC_COMMON(opaque);
|
|
||||||
apic_irq_delivered = s->apic_irq_delivered;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const VMStateDescription vmstate_apic_common_sipi = {
|
static const VMStateDescription vmstate_apic_common_sipi = {
|
||||||
.name = "apic_sipi",
|
.name = "apic_sipi",
|
||||||
.version_id = 1,
|
.version_id = 1,
|
||||||
|
@ -418,19 +399,6 @@ static const VMStateDescription vmstate_apic_common_sipi = {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static const VMStateDescription vmstate_apic_irq_delivered = {
|
|
||||||
.name = "apic_irq_delivered",
|
|
||||||
.version_id = 1,
|
|
||||||
.minimum_version_id = 1,
|
|
||||||
.needed = apic_irq_delivered_needed,
|
|
||||||
.pre_save = apic_irq_delivered_pre_save,
|
|
||||||
.post_load = apic_irq_delivered_post_load,
|
|
||||||
.fields = (VMStateField[]) {
|
|
||||||
VMSTATE_INT32(apic_irq_delivered, APICCommonState),
|
|
||||||
VMSTATE_END_OF_LIST()
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
static const VMStateDescription vmstate_apic_common = {
|
static const VMStateDescription vmstate_apic_common = {
|
||||||
.name = "apic",
|
.name = "apic",
|
||||||
.version_id = 3,
|
.version_id = 3,
|
||||||
|
@ -465,7 +433,6 @@ static const VMStateDescription vmstate_apic_common = {
|
||||||
},
|
},
|
||||||
.subsections = (const VMStateDescription*[]) {
|
.subsections = (const VMStateDescription*[]) {
|
||||||
&vmstate_apic_common_sipi,
|
&vmstate_apic_common_sipi,
|
||||||
&vmstate_apic_irq_delivered,
|
|
||||||
NULL
|
NULL
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -189,8 +189,6 @@ struct APICCommonState {
|
||||||
DeviceState *vapic;
|
DeviceState *vapic;
|
||||||
hwaddr vapic_paddr; /* note: persistence via kvmvapic */
|
hwaddr vapic_paddr; /* note: persistence via kvmvapic */
|
||||||
bool legacy_instance_id;
|
bool legacy_instance_id;
|
||||||
|
|
||||||
int apic_irq_delivered; /* for saving static variable */
|
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct VAPICState {
|
typedef struct VAPICState {
|
||||||
|
|
Loading…
Reference in New Issue