mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-05 01:54:09 +08:00
x86, ioapic: Remove duplicate code for saving/restoring RTEs
Code flow for enabling interrupt-remapping has its own routines for saving and restoring io-apic RTE's. ioapic suspend/resume code flow also has similar routines. Remove the duplicate code. Tested-by: Daniel J Blueman <daniel.blueman@gmail.com> Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com> Link: http://lkml.kernel.org/r/20110518233157.673130611@sbsiddha-MOBL3.sc.intel.com Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
31dce14a32
commit
15bac20bd8
@ -2887,37 +2887,11 @@ static int __init io_apic_bug_finalize(void)
|
||||
|
||||
late_initcall(io_apic_bug_finalize);
|
||||
|
||||
static void suspend_ioapic(int ioapic_id)
|
||||
static void resume_ioapic_id(int ioapic_id)
|
||||
{
|
||||
struct IO_APIC_route_entry *saved_data = ioapic_saved_data[ioapic_id];
|
||||
int i;
|
||||
|
||||
if (!saved_data)
|
||||
return;
|
||||
|
||||
for (i = 0; i < nr_ioapic_registers[ioapic_id]; i++)
|
||||
saved_data[i] = ioapic_read_entry(ioapic_id, i);
|
||||
}
|
||||
|
||||
static int ioapic_suspend(void)
|
||||
{
|
||||
int ioapic_id;
|
||||
|
||||
for (ioapic_id = 0; ioapic_id < nr_ioapics; ioapic_id++)
|
||||
suspend_ioapic(ioapic_id);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void resume_ioapic(int ioapic_id)
|
||||
{
|
||||
struct IO_APIC_route_entry *saved_data = ioapic_saved_data[ioapic_id];
|
||||
unsigned long flags;
|
||||
union IO_APIC_reg_00 reg_00;
|
||||
int i;
|
||||
|
||||
if (!saved_data)
|
||||
return;
|
||||
|
||||
raw_spin_lock_irqsave(&ioapic_lock, flags);
|
||||
reg_00.raw = io_apic_read(ioapic_id, 0);
|
||||
@ -2926,8 +2900,6 @@ static void resume_ioapic(int ioapic_id)
|
||||
io_apic_write(ioapic_id, 0, reg_00.raw);
|
||||
}
|
||||
raw_spin_unlock_irqrestore(&ioapic_lock, flags);
|
||||
for (i = 0; i < nr_ioapic_registers[ioapic_id]; i++)
|
||||
ioapic_write_entry(ioapic_id, i, saved_data[i]);
|
||||
}
|
||||
|
||||
static void ioapic_resume(void)
|
||||
@ -2935,11 +2907,13 @@ static void ioapic_resume(void)
|
||||
int ioapic_id;
|
||||
|
||||
for (ioapic_id = nr_ioapics - 1; ioapic_id >= 0; ioapic_id--)
|
||||
resume_ioapic(ioapic_id);
|
||||
resume_ioapic_id(ioapic_id);
|
||||
|
||||
restore_ioapic_entries();
|
||||
}
|
||||
|
||||
static struct syscore_ops ioapic_syscore_ops = {
|
||||
.suspend = ioapic_suspend,
|
||||
.suspend = save_ioapic_entries,
|
||||
.resume = ioapic_resume,
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user