sharkcz / rpms / kernel

Forked from rpms/kernel 6 years ago
Clone
kyle a9e5080
From 8d2f6746f7f82e1aee2dc40a937b5954cfc73414 Mon Sep 17 00:00:00 2001
kyle a9e5080
From: Kyle McMartin <kyle@mcmartin.ca>
kyle a9e5080
Date: Sun, 17 Oct 2010 15:55:32 -0400
kyle a9e5080
Subject: [PATCH] dmar: disable if ricoh multifunction detected
kyle a9e5080
kyle a9e5080
---
kyle a9e5080
 drivers/pci/intel-iommu.c |   10 ++++++++++
kyle a9e5080
 1 files changed, 10 insertions(+), 0 deletions(-)
kyle a9e5080
kyle a9e5080
diff --git a/drivers/pci/intel-iommu.c b/drivers/pci/intel-iommu.c
kyle a9e5080
index 8e499e8..076c5de 100644
kyle a9e5080
--- a/drivers/pci/intel-iommu.c
kyle a9e5080
+++ b/drivers/pci/intel-iommu.c
Kyle McMartin 4663ea7
@@ -3755,6 +3755,18 @@ static void __devinit quirk_iommu_rwbf(struct pci_dev *dev)
kyle a9e5080
 
kyle a9e5080
 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2a40, quirk_iommu_rwbf);
kyle a9e5080
 
kyle a9e5080
+/* https://bugzilla.redhat.com/show_bug.cgi?id=605888 */
kyle a9e5080
+static void __devinit quirk_ricoh_multifunction(struct pci_dev *dev)
kyle a9e5080
+{
Kyle McMartin 4663ea7
+	printk(KERN_INFO "intel_iommu: broken Ricoh device %04X detected, disabling...\n",
Kyle McMartin 4663ea7
+		dev->device);
kyle a9e5080
+	dmar_disabled = 1;
kyle a9e5080
+}
kyle a9e5080
+DECLARE_PCI_FIXUP_HEADER(0x1180, 0xe822, quirk_ricoh_multifunction);
kyle a9e5080
+DECLARE_PCI_FIXUP_HEADER(0x1180, 0xe230, quirk_ricoh_multifunction);
kyle a9e5080
+DECLARE_PCI_FIXUP_HEADER(0x1180, 0xe832, quirk_ricoh_multifunction);
kyle a9e5080
+DECLARE_PCI_FIXUP_HEADER(0x1180, 0xe476, quirk_ricoh_multifunction);
kyle a9e5080
+
kyle a9e5080
 /* On Tylersburg chipsets, some BIOSes have been known to enable the
kyle a9e5080
    ISOCH DMAR unit for the Azalia sound device, but not give it any
kyle a9e5080
    TLB entries, which causes it to deadlock. Check for that.  We do
kyle a9e5080
-- 
kyle a9e5080
1.7.3.1
kyle a9e5080