Revert "x86/ioapic: Add register level checks to detect bogus io-apic entries"
This reverts commit 273fb194e86b795b08a724c7646d0f694949070b. It is reported to break Xen support (not sure which domains/modes). svn path=/dists/sid/linux-2.6/; revision=18903
This commit is contained in:
parent
7192bde72e
commit
54b2da19c7
87
debian/patches/debian/revert-x86-ioapic-Add-register-level-checks-to-detec.patch
vendored
Normal file
87
debian/patches/debian/revert-x86-ioapic-Add-register-level-checks-to-detec.patch
vendored
Normal file
|
@ -0,0 +1,87 @@
|
|||
From: Ben Hutchings <ben@decadent.org.uk>
|
||||
Date: Wed, 4 Apr 2012 02:08:12 +0100
|
||||
Subject: [PATCH] Revert "x86/ioapic: Add register level checks to detect
|
||||
bogus io-apic entries"
|
||||
|
||||
This reverts commit 273fb194e86b795b08a724c7646d0f694949070b.
|
||||
It is reported to break Xen support (not sure which domains/modes).
|
||||
---
|
||||
arch/x86/kernel/apic/io_apic.c | 40 ++++++++--------------------------------
|
||||
1 file changed, 8 insertions(+), 32 deletions(-)
|
||||
|
||||
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
|
||||
index a25e276..6d939d7 100644
|
||||
--- a/arch/x86/kernel/apic/io_apic.c
|
||||
+++ b/arch/x86/kernel/apic/io_apic.c
|
||||
@@ -3963,36 +3963,18 @@ int mp_find_ioapic_pin(int ioapic, u32 gsi)
|
||||
static __init int bad_ioapic(unsigned long address)
|
||||
{
|
||||
if (nr_ioapics >= MAX_IO_APICS) {
|
||||
- pr_warn("WARNING: Max # of I/O APICs (%d) exceeded (found %d), skipping\n",
|
||||
- MAX_IO_APICS, nr_ioapics);
|
||||
+ printk(KERN_WARNING "WARNING: Max # of I/O APICs (%d) exceeded "
|
||||
+ "(found %d), skipping\n", MAX_IO_APICS, nr_ioapics);
|
||||
return 1;
|
||||
}
|
||||
if (!address) {
|
||||
- pr_warn("WARNING: Bogus (zero) I/O APIC address found in table, skipping!\n");
|
||||
+ printk(KERN_WARNING "WARNING: Bogus (zero) I/O APIC address"
|
||||
+ " found in table, skipping!\n");
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static __init int bad_ioapic_register(int idx)
|
||||
-{
|
||||
- union IO_APIC_reg_00 reg_00;
|
||||
- union IO_APIC_reg_01 reg_01;
|
||||
- union IO_APIC_reg_02 reg_02;
|
||||
-
|
||||
- reg_00.raw = io_apic_read(idx, 0);
|
||||
- reg_01.raw = io_apic_read(idx, 1);
|
||||
- reg_02.raw = io_apic_read(idx, 2);
|
||||
-
|
||||
- if (reg_00.raw == -1 && reg_01.raw == -1 && reg_02.raw == -1) {
|
||||
- pr_warn("I/O APIC 0x%x registers return all ones, skipping!\n",
|
||||
- mpc_ioapic_addr(idx));
|
||||
- return 1;
|
||||
- }
|
||||
-
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
void __init mp_register_ioapic(int id, u32 address, u32 gsi_base)
|
||||
{
|
||||
int idx = 0;
|
||||
@@ -4009,12 +3991,6 @@ void __init mp_register_ioapic(int id, u32 address, u32 gsi_base)
|
||||
ioapics[idx].mp_config.apicaddr = address;
|
||||
|
||||
set_fixmap_nocache(FIX_IO_APIC_BASE_0 + idx, address);
|
||||
-
|
||||
- if (bad_ioapic_register(idx)) {
|
||||
- clear_fixmap(FIX_IO_APIC_BASE_0 + idx);
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
ioapics[idx].mp_config.apicid = io_apic_unique_id(id);
|
||||
ioapics[idx].mp_config.apicver = io_apic_get_version(idx);
|
||||
|
||||
@@ -4035,10 +4011,10 @@ void __init mp_register_ioapic(int id, u32 address, u32 gsi_base)
|
||||
if (gsi_cfg->gsi_end >= gsi_top)
|
||||
gsi_top = gsi_cfg->gsi_end + 1;
|
||||
|
||||
- pr_info("IOAPIC[%d]: apic_id %d, version %d, address 0x%x, GSI %d-%d\n",
|
||||
- idx, mpc_ioapic_id(idx),
|
||||
- mpc_ioapic_ver(idx), mpc_ioapic_addr(idx),
|
||||
- gsi_cfg->gsi_base, gsi_cfg->gsi_end);
|
||||
+ printk(KERN_INFO "IOAPIC[%d]: apic_id %d, version %d, address 0x%x, "
|
||||
+ "GSI %d-%d\n", idx, mpc_ioapic_id(idx),
|
||||
+ mpc_ioapic_ver(idx), mpc_ioapic_addr(idx),
|
||||
+ gsi_cfg->gsi_base, gsi_cfg->gsi_end);
|
||||
|
||||
nr_ioapics++;
|
||||
}
|
||||
--
|
||||
1.7.9.5
|
||||
|
|
@ -84,3 +84,6 @@
|
|||
|
||||
# Temporary, until the original change has been tested some more
|
||||
+ debian/revert-CIFS-Respect-negotiated-MaxMpxCount.patch
|
||||
|
||||
# Temporary, until the Xen regression is fixed
|
||||
+ debian/revert-x86-ioapic-Add-register-level-checks-to-detec.patch
|
||||
|
|
Loading…
Reference in New Issue