]> xenbits.xensource.com Git - xen.git/commitdiff
Revert "VT-d: suppress UR signaling for desktop chipsets"
authorJan Beulich <jbeulich@suse.com>
Wed, 21 May 2014 14:33:57 +0000 (16:33 +0200)
committerJan Beulich <jbeulich@suse.com>
Wed, 21 May 2014 14:33:57 +0000 (16:33 +0200)
This reverts commit a910070d4289fdf71c3ca35886192a602a3724d5 -
the use of ioremap()/iounmap() is only valid from 4.3 onwards.

xen/drivers/passthrough/vtd/quirks.c

index a8dc18e2ad2768c1948fa137ff5054349ef81d84..767c96aa22c1884f4f6843cada37b6da1fba0534 100644 (file)
@@ -391,12 +391,13 @@ void me_wifi_quirk(struct domain *domain, u8 bus, u8 devfn, int map)
  */
 void __init pci_vtd_quirk(struct pci_dev *pdev)
 {
+#ifdef CONFIG_X86_64
     int seg = pdev->seg;
     int bus = pdev->bus;
     int dev = PCI_SLOT(pdev->devfn);
     int func = PCI_FUNC(pdev->devfn);
-    u64 bar;
-    paddr_t pa;
+    int pos;
+    u32 val;
 
     if ( pci_conf_read16(seg, bus, dev, func, PCI_VENDOR_ID) !=
          PCI_VENDOR_ID_INTEL )
@@ -404,10 +405,6 @@ void __init pci_vtd_quirk(struct pci_dev *pdev)
 
     switch ( pci_conf_read16(seg, bus, dev, func, PCI_DEVICE_ID) )
     {
-#ifdef CONFIG_X86_64
-        int pos;
-        u32 val;
-
     case 0x342e: /* Tylersburg chipset (Nehalem / Westmere systems) */
     case 0x3c28: /* Sandybridge */
         val = pci_conf_read32(seg, bus, dev, func, 0x1AC);
@@ -462,34 +459,6 @@ void __init pci_vtd_quirk(struct pci_dev *pdev)
         printk(XENLOG_INFO "Masked UR signaling on %04x:%02x:%02x.%u\n",
                seg, bus, dev, func);
         break;
-#endif
-
-    case 0x100: case 0x104: case 0x108: /* Sandybridge */
-    case 0x150: case 0x154: case 0x158: /* Ivybridge */
-    case 0xa04: /* Haswell ULT */
-    case 0xc00: case 0xc04: case 0xc08: /* Haswell */
-        bar = pci_conf_read32(seg, bus, dev, func, 0x6c);
-        bar = (bar << 32) | pci_conf_read32(seg, bus, dev, func, 0x68);
-        pa = bar & 0x7fffff000; /* bits 12...38 */
-        if ( (bar & 1) && pa &&
-             page_is_ram_type(paddr_to_pfn(pa), RAM_TYPE_RESERVED) )
-        {
-            u32 __iomem *va = ioremap(pa, PAGE_SIZE);
-
-            if ( va )
-            {
-                __set_bit(0x1c8 * 8 + 20, va);
-                iounmap(va);
-                printk(XENLOG_INFO "Masked UR signaling on %04x:%02x:%02x.%u\n",
-                       seg, bus, dev, func);
-            }
-            else
-                printk(XENLOG_ERR "Could not map %"PRIpaddr" for %04x:%02x:%02x.%u\n",
-                       pa, seg, bus, dev, func);
-        }
-        else
-            printk(XENLOG_WARNING "Bogus DMIBAR %#"PRIx64" on %04x:%02x:%02x.%u\n",
-                   bar, seg, bus, dev, func);
-        break;
     }
+#endif
 }