提交 5cb6b999 编写于 作者: A Andi Kleen 提交者: Andi Kleen

[PATCH] Remove pirq overwrite support

This was an old workaround for broken MP-BIOS. The user could
specify overwrites on the command line.

I've never seen it being used for anything on 64bit. So get
rid of it for now.
Signed-off-by: NAndi Kleen <ak@suse.de>
上级 2e91a17b
...@@ -225,14 +225,6 @@ static void clear_IO_APIC (void) ...@@ -225,14 +225,6 @@ static void clear_IO_APIC (void)
clear_IO_APIC_pin(apic, pin); clear_IO_APIC_pin(apic, pin);
} }
/*
* support for broken MP BIOSs, enables hand-redirection of PIRQ0-7 to
* specific CPU-side IRQs.
*/
#define MAX_PIRQS 8
static int pirq_entries [MAX_PIRQS];
static int pirqs_enabled;
int skip_ioapic_setup; int skip_ioapic_setup;
int ioapic_force; int ioapic_force;
...@@ -370,34 +362,6 @@ void __init check_ioapic(void) ...@@ -370,34 +362,6 @@ void __init check_ioapic(void)
} }
} }
static int __init ioapic_pirq_setup(char *str)
{
int i, max;
int ints[MAX_PIRQS+1];
get_options(str, ARRAY_SIZE(ints), ints);
for (i = 0; i < MAX_PIRQS; i++)
pirq_entries[i] = -1;
pirqs_enabled = 1;
apic_printk(APIC_VERBOSE, "PIRQ redirection, working around broken MP-BIOS.\n");
max = MAX_PIRQS;
if (ints[0] < MAX_PIRQS)
max = ints[0];
for (i = 0; i < max; i++) {
apic_printk(APIC_VERBOSE, "... PIRQ%d -> IRQ %d\n", i, ints[i+1]);
/*
* PIRQs are mapped upside down, usually.
*/
pirq_entries[MAX_PIRQS-i-1] = ints[i+1];
}
return 1;
}
__setup("pirq=", ioapic_pirq_setup);
/* /*
* Find the IRQ entry number of a certain pin. * Find the IRQ entry number of a certain pin.
*/ */
...@@ -793,22 +757,6 @@ static int pin_2_irq(int idx, int apic, int pin) ...@@ -793,22 +757,6 @@ static int pin_2_irq(int idx, int apic, int pin)
} }
} }
BUG_ON(irq >= NR_IRQS); BUG_ON(irq >= NR_IRQS);
/*
* PCI IRQ command line redirection. Yes, limits are hardcoded.
*/
if ((pin >= 16) && (pin <= 23)) {
if (pirq_entries[pin-16] != -1) {
if (!pirq_entries[pin-16]) {
apic_printk(APIC_VERBOSE, "disabling PIRQ%d\n", pin-16);
} else {
irq = pirq_entries[pin-16];
apic_printk(APIC_VERBOSE, "using PIRQ%d -> IRQ %d\n",
pin-16, irq);
}
}
}
BUG_ON(irq >= NR_IRQS);
return irq; return irq;
} }
...@@ -1281,9 +1229,6 @@ static void __init enable_IO_APIC(void) ...@@ -1281,9 +1229,6 @@ static void __init enable_IO_APIC(void)
irq_2_pin[i].pin = -1; irq_2_pin[i].pin = -1;
irq_2_pin[i].next = 0; irq_2_pin[i].next = 0;
} }
if (!pirqs_enabled)
for (i = 0; i < MAX_PIRQS; i++)
pirq_entries[i] = -1;
/* /*
* The number of IO-APIC IRQ registers (== #pins): * The number of IO-APIC IRQ registers (== #pins):
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册