From: David Woodhouse <dwmw2@infradead.org>
To: linux-kernel@vger.kernel.org
Cc: andi@firstfloor.org, arjan@infradead.org
Subject: Blacklist DMAR on Intel G31/G33 chipsets
Date: Wed, 03 Sep 2008 11:53:51 +0100 [thread overview]
Message-ID: <1220439231.2985.103.camel@pmac.infradead.org> (raw)
In-Reply-To: <20080902061920.GK18288@one.firstfloor.org>
Some BIOSes (the Intel DG33BU, for example) wrongly claim to have DMAR
when they don't. Avoid the resulting crashes when it doesn't work as
expected.
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
---
Using early-quirks this time, at Andi's suggestion. I haven't been able
to test this version though, since I killed my board when trying to reflash
the BIOS too many times. Arjan, did you say we have a pile of these?
arch/x86/kernel/early-quirks.c | 18 ++++++++++++++++++
1 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/arch/x86/kernel/early-quirks.c b/arch/x86/kernel/early-quirks.c
index 4353cf5..f51f61b 100644
--- a/arch/x86/kernel/early-quirks.c
+++ b/arch/x86/kernel/early-quirks.c
@@ -95,6 +95,20 @@ static void __init nvidia_bugs(int num, int slot, int func)
}
+#ifdef CONFIG_DMAR
+static void __init intel_g33_dmar(int num, int slot, int func)
+{
+ struct acpi_table_header *dmar_tbl;
+ acpi_status = status;
+
+ status = acpi_get_table(ACPI_SIG_DMAR, 0, &dmar_tbl);
+ if (ACPI_SUCCESS(status)) {
+ printk(KERN_INFO "BIOS BUG: DMAR advertised on Intel G31/G33 chipset -- ignoring\n");
+ dmar_disabled = 1;
+ }
+}
+#endif
+
#define QFLAG_APPLY_ONCE 0x1
#define QFLAG_APPLIED 0x2
#define QFLAG_DONE (QFLAG_APPLY_ONCE|QFLAG_APPLIED)
@@ -114,6 +128,10 @@ static struct chipset early_qrk[] __initdata = {
PCI_CLASS_BRIDGE_PCI, PCI_ANY_ID, QFLAG_APPLY_ONCE, via_bugs },
{ PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_K8_NB,
PCI_CLASS_BRIDGE_HOST, PCI_ANY_ID, 0, fix_hypertransport_config },
+#ifdef CONFIG_DMAR
+ { PCI_VENDOR_ID_INTEL, 0x29c0,
+ PCI_CLASS_BRIDGE_HOST, PCI_ANY_ID, 0, intel_g33_dmar },
+#endif
{}
};
--
1.5.5.1
--
David Woodhouse Open Source Technology Centre
David.Woodhouse@intel.com Intel Corporation
next prev parent reply other threads:[~2008-09-03 10:54 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-01 20:14 Misc fixes for 2.6.27 David Woodhouse
2008-09-01 22:32 ` Andi Kleen
2008-09-01 22:35 ` Arjan van de Ven
2008-09-01 23:01 ` Andi Kleen
2008-09-01 23:16 ` Arjan van de Ven
2008-09-02 6:19 ` Andi Kleen
2008-09-02 8:23 ` David Woodhouse
2008-09-03 10:53 ` David Woodhouse [this message]
2008-09-03 12:09 ` Blacklist DMAR on Intel G31/G33 chipsets Andi Kleen
2008-09-03 12:22 ` David Woodhouse
2008-09-04 8:54 ` [PATCH] " David Woodhouse
2008-09-05 18:34 ` Ingo Molnar
2008-09-05 18:47 ` David Woodhouse
2008-09-06 15:49 ` Ingo Molnar
2008-09-07 8:20 ` David Woodhouse
2008-09-07 15:35 ` [2.6.27 PATCH] " David Woodhouse
2008-09-09 18:39 ` Jesse Barnes
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1220439231.2985.103.camel@pmac.infradead.org \
--to=dwmw2@infradead.org \
--cc=andi@firstfloor.org \
--cc=arjan@infradead.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.