[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20120411231313.214447921@linuxfoundation.org>
Date: Wed, 11 Apr 2012 16:13:40 -0700
From: Greg KH <gregkh@...uxfoundation.org>
To: linux-kernel@...r.kernel.org, stable@...r.kernel.org
Cc: torvalds@...ux-foundation.org, akpm@...ux-foundation.org,
alan@...rguk.ukuu.org.uk,
Konrad Rzeszutek Wilk <konrad.wilk@...cle.com>,
Jon Dufresne <jon@...dufresne.org>,
Suresh Siddha <suresh.b.siddha@...el.com>,
<yinghai@...nel.org>, Josh Boyer <jwboyer@...hat.com>,
Ingo Molnar <mingo@...e.hu>,
Teck Choon Giam <giamteckchoon@...il.com>,
Ben Guthro <ben@...hro.net>
Subject: [ 33/42] Revert "x86/ioapic: Add register level checks to detect bogus io-apic entries"
3.0-stable review patch. If anyone has any objections, please let me know.
------------------
This reverts commit c2ec63edaf48c90c3495eeb0b75bb05102fbf71a
[73d63d038ee9f769f5e5b46792d227fe20e442c5 upstream]
It causes problems, so needs to be reverted from 3.2-stable for now.
Reported-by: Konrad Rzeszutek Wilk <konrad.wilk@...cle.com>
Cc: Jon Dufresne <jon@...dufresne.org>
Cc: Suresh Siddha <suresh.b.siddha@...el.com>
Cc: <yinghai@...nel.org>
Cc: Josh Boyer <jwboyer@...hat.com>
Cc: Ingo Molnar <mingo@...e.hu>
Cc: Teck Choon Giam <giamteckchoon@...il.com>
Cc: Ben Guthro <ben@...hro.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
---
arch/x86/kernel/apic/io_apic.c | 40 ++++++++--------------------------------
1 file changed, 8 insertions(+), 32 deletions(-)
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -3927,36 +3927,18 @@ int mp_find_ioapic_pin(int ioapic, u32 g
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;
@@ -3973,12 +3955,6 @@ void __init mp_register_ioapic(int id, u
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);
@@ -3999,10 +3975,10 @@ void __init mp_register_ioapic(int id, u
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++;
}
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists