mirror of
https://github.com/torvalds/linux.git
synced 2024-11-17 01:22:07 +00:00
x86: fully honor "nolapic"
Impact: widen the effect of the 'nolapic' boot parameter "nolapic" should not only suppress SMP and use of the LAPIC, but it also ought to have the effect of disabling all IO-APIC related activity as well as PCI MSI and HT-IRQs. Signed-off-by: Jan Beulich <jbeulich@novell.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
5cca0cf15a
commit
f11826385b
@ -1126,6 +1126,11 @@ void __cpuinit setup_local_APIC(void)
|
||||
unsigned int value;
|
||||
int i, j;
|
||||
|
||||
if (disable_apic) {
|
||||
disable_ioapic_setup();
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_X86_32
|
||||
/* Pound the ESR really hard over the head with a big hammer - mbligh */
|
||||
if (lapic_is_integrated() && esr_disable) {
|
||||
@ -1566,11 +1571,11 @@ int apic_version[MAX_APICS];
|
||||
|
||||
int __init APIC_init_uniprocessor(void)
|
||||
{
|
||||
#ifdef CONFIG_X86_64
|
||||
if (disable_apic) {
|
||||
pr_info("Apic disabled\n");
|
||||
return -1;
|
||||
}
|
||||
#ifdef CONFIG_X86_64
|
||||
if (!cpu_has_apic) {
|
||||
disable_apic = 1;
|
||||
pr_info("Apic disabled by BIOS\n");
|
||||
|
@ -3258,6 +3258,9 @@ static int msi_compose_msg(struct pci_dev *pdev, unsigned int irq, struct msi_ms
|
||||
int err;
|
||||
unsigned dest;
|
||||
|
||||
if (disable_apic)
|
||||
return -ENXIO;
|
||||
|
||||
cfg = irq_cfg(irq);
|
||||
err = assign_irq_vector(irq, cfg, TARGET_CPUS);
|
||||
if (err)
|
||||
@ -3726,6 +3729,9 @@ int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev)
|
||||
struct irq_cfg *cfg;
|
||||
int err;
|
||||
|
||||
if (disable_apic)
|
||||
return -ENXIO;
|
||||
|
||||
cfg = irq_cfg(irq);
|
||||
err = assign_irq_vector(irq, cfg, TARGET_CPUS);
|
||||
if (!err) {
|
||||
|
@ -1125,6 +1125,7 @@ static int __init smp_sanity_check(unsigned max_cpus)
|
||||
printk(KERN_ERR "... forcing use of dummy APIC emulation."
|
||||
"(tell your hw vendor)\n");
|
||||
smpboot_clear_io_apic();
|
||||
disable_ioapic_setup();
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user