All of lore.kernel.org
 help / color / mirror / Atom feed
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




  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.