Merge branch 'linus' into x86/apic-cleanups
Conflicts: arch/x86/include/asm/io_apic.h Merge reason: Resolve the conflict, update to a more recent -rc base Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
@@ -31,7 +31,6 @@
|
||||
#include <linux/init.h>
|
||||
#include <linux/cpu.h>
|
||||
#include <linux/dmi.h>
|
||||
#include <linux/nmi.h>
|
||||
#include <linux/smp.h>
|
||||
#include <linux/mm.h>
|
||||
|
||||
@@ -432,17 +431,18 @@ int setup_APIC_eilvt(u8 offset, u8 vector, u8 msg_type, u8 mask)
|
||||
reserved = reserve_eilvt_offset(offset, new);
|
||||
|
||||
if (reserved != new) {
|
||||
pr_err(FW_BUG "cpu %d, try to setup vector 0x%x, but "
|
||||
"vector 0x%x was already reserved by another core, "
|
||||
"APIC%lX=0x%x\n",
|
||||
smp_processor_id(), new, reserved, reg, old);
|
||||
pr_err(FW_BUG "cpu %d, try to use APIC%lX (LVT offset %d) for "
|
||||
"vector 0x%x, but the register is already in use for "
|
||||
"vector 0x%x on another cpu\n",
|
||||
smp_processor_id(), reg, offset, new, reserved);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (!eilvt_entry_is_changeable(old, new)) {
|
||||
pr_err(FW_BUG "cpu %d, try to setup vector 0x%x but "
|
||||
"register already in use, APIC%lX=0x%x\n",
|
||||
smp_processor_id(), new, reg, old);
|
||||
pr_err(FW_BUG "cpu %d, try to use APIC%lX (LVT offset %d) for "
|
||||
"vector 0x%x, but the register is already in use for "
|
||||
"vector 0x%x on this cpu\n",
|
||||
smp_processor_id(), reg, offset, new, old);
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
@@ -799,11 +799,7 @@ void __init setup_boot_APIC_clock(void)
|
||||
* PIT/HPET going. Otherwise register lapic as a dummy
|
||||
* device.
|
||||
*/
|
||||
if (nmi_watchdog != NMI_IO_APIC)
|
||||
lapic_clockevent.features &= ~CLOCK_EVT_FEAT_DUMMY;
|
||||
else
|
||||
pr_warning("APIC timer registered as dummy,"
|
||||
" due to nmi_watchdog=%d!\n", nmi_watchdog);
|
||||
lapic_clockevent.features &= ~CLOCK_EVT_FEAT_DUMMY;
|
||||
|
||||
/* Setup the lapic or request the broadcast */
|
||||
setup_APIC_timer();
|
||||
@@ -1384,8 +1380,15 @@ void __cpuinit end_local_APIC_setup(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
setup_apic_nmi_watchdog(NULL);
|
||||
apic_pm_activate();
|
||||
|
||||
/*
|
||||
* Now that local APIC setup is completed for BP, configure the fault
|
||||
* handling for interrupt remapping.
|
||||
*/
|
||||
if (!smp_processor_id() && intr_remapping_enabled)
|
||||
enable_drhd_fault_handling();
|
||||
|
||||
}
|
||||
|
||||
#ifdef CONFIG_X86_X2APIC
|
||||
@@ -1694,7 +1697,7 @@ void __init register_lapic_address(unsigned long address)
|
||||
* This initializes the IO-APIC and APIC hardware if this is
|
||||
* a UP kernel.
|
||||
*/
|
||||
int apic_version[MAX_APICS];
|
||||
int apic_version[MAX_LOCAL_APIC];
|
||||
|
||||
int __init APIC_init_uniprocessor(void)
|
||||
{
|
||||
@@ -1759,17 +1762,10 @@ int __init APIC_init_uniprocessor(void)
|
||||
setup_IO_APIC();
|
||||
else {
|
||||
nr_ioapics = 0;
|
||||
localise_nmi_watchdog();
|
||||
}
|
||||
#else
|
||||
localise_nmi_watchdog();
|
||||
#endif
|
||||
|
||||
x86_init.timers.setup_percpu_clockev();
|
||||
#ifdef CONFIG_X86_64
|
||||
check_nmi_watchdog();
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user