[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 3/3] apic: always update the in-kernel status af
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 3/3] apic: always update the in-kernel status after loading |
Date: |
Tue, 30 Oct 2012 15:16:32 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:16.0) Gecko/20121016 Thunderbird/16.0.1 |
Il 30/10/2012 13:38, Avi Kivity ha scritto:
> On 10/30/2012 02:16 PM, Paolo Bonzini wrote:
>> The LAPIC is loaded separately from the rest of the VCPU state. Thus,
>> when restoring the CPU the dummy post-reset state is passed to the
>> in-kernel APIC.
>>
>> This can cause MSI injection to fail if attempted during the restore of
>> another device, because the LAPIC believes it's not enabled.
>>
>> Signed-off-by: Paolo Bonzini <address@hidden>
>> ---
>> hw/apic_common.c | 1 +
>> 1 files changed, 1 insertions(+), 0 deletions(-)
>>
>> diff --git a/hw/apic_common.c b/hw/apic_common.c
>> index f373ba8..1ef52b2 100644
>> --- a/hw/apic_common.c
>> +++ b/hw/apic_common.c
>> @@ -362,6 +362,7 @@ static int apic_dispatch_post_load(void *opaque, int
>> version_id)
>> if (info->post_load) {
>> info->post_load(s);
>> }
>> + cpu_put_apic_state(DEVICE(s));
>> return 0;
>> }
>
> Aren't we still dependent on the order of processing? If the APIC is
> restored after the device, won't we get the same problem?
Strictly speaking yes, but CPUs and APICs are always the first devices
to be saved.
Paolo