There's no need to save and restore the IO-APIC entries, the entries
prior to suspension have already been saved by ioapic_suspend, and
will be restored by ioapic_resume. Note that at the point where
resume_x2apic gets called the IO-APIC has not yet resumed, and hence
all entries should be masked.
Note this shouldn't introduce any functional change.
Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Tested-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Release-acked-by: Juergen Gross <jgross@suse.com>
static void resume_x2apic(void)
{
- struct IO_APIC_route_entry **ioapic_entries = NULL;
-
- ASSERT(x2apic_enabled);
-
- ioapic_entries = alloc_ioapic_entries();
- if ( !ioapic_entries )
- {
- printk("Allocate ioapic_entries failed\n");
- goto out;
- }
-
- if ( save_IO_APIC_setup(ioapic_entries) )
- {
- printk("Saving IO-APIC state failed\n");
- goto out;
- }
-
- mask_8259A();
- mask_IO_APIC_setup(ioapic_entries);
-
iommu_enable_x2apic();
__enable_x2apic();
-
- restore_IO_APIC_setup(ioapic_entries);
- unmask_8259A();
-
-out:
- if ( ioapic_entries )
- free_ioapic_entries(ioapic_entries);
}
void setup_local_APIC(void)