WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH 3/5] x86: x2apic pre-enabled but intr-remapping is no

To: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH 3/5] x86: x2apic pre-enabled but intr-remapping is not enabled
From: "Jan Beulich" <JBeulich@xxxxxxxxxx>
Date: Wed, 15 Dec 2010 11:18:35 +0000
Cc: Yinghai Lu <yinghai@xxxxxxxxxx>
Delivery-date: Wed, 15 Dec 2010 03:21:03 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Make it aligned with Linux kernel.

Signed-off-by: Yinghai Lu <yinghai@xxxxxxxxxx>

Removed unnecessary bits from the original patch, and removed
intremap_enabled() with its only caller gone.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>

--- 2010-11-09.orig/xen/arch/x86/apic.c
+++ 2010-11-09/xen/arch/x86/apic.c
@@ -972,15 +972,6 @@ void x2apic_setup(void)
     rdmsrl(MSR_IA32_APICBASE, msr_content);
     if ( msr_content & MSR_IA32_APICBASE_EXTD )
     {
-        /*
-         * Interrupt remapping should be also enabled by BIOS when
-         * x2APIC is already enabled by BIOS, otherwise it's a BIOS
-         * bug
-         */
-        if ( !intremap_enabled() )
-            panic("Interrupt remapping is not enabled by BIOS while "
-                  "x2APIC is already enabled by BIOS!\n");
-
         printk("x2APIC mode is already enabled by BIOS.\n");
         x2apic_enabled = 1;
     }
@@ -1023,6 +1014,10 @@ void x2apic_setup(void)
 
     if ( iommu_enable_IR() )
     {
+        if ( x2apic_enabled )
+            panic("Interrupt remapping could not be enabled while "
+                  "x2APIC is already enabled by BIOS!\n");
+
         printk("Would not enable x2APIC due to interrupt remapping "
                "cannot be enabled.\n");
         goto restore_out;
--- 2010-11-09.orig/xen/drivers/passthrough/vtd/intremap.c
+++ 2010-11-09/xen/drivers/passthrough/vtd/intremap.c
@@ -894,23 +894,3 @@ void iommu_disable_IR(void)
     for_each_drhd_unit ( drhd )
         disable_qinval(drhd->iommu);
 }
-
-/*
- * Check if interrupt remapping is enabled or not
- * return 1: enabled
- * return 0: not enabled
- */
-int intremap_enabled(void)
-{
-    struct acpi_drhd_unit *drhd;
-    u32 sts;
-
-    for_each_drhd_unit ( drhd )
-    {
-        sts = dmar_readl(drhd->iommu->reg, DMAR_GSTS_REG);
-        if ( !(sts & DMA_GSTS_IRES) )
-            return 0;
-    }
-
-    return 1;
-}
--- 2010-11-09.orig/xen/include/xen/iommu.h
+++ 2010-11-09/xen/include/xen/iommu.h
@@ -62,7 +62,6 @@ int iommu_setup(void);
 int iommu_supports_eim(void);
 int iommu_enable_IR(void);
 void iommu_disable_IR(void);
-int intremap_enabled(void);
 
 int iommu_add_device(struct pci_dev *pdev);
 int iommu_remove_device(struct pci_dev *pdev);



Attachment: x86-x2apic-preenabled.patch
Description: Text document

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [PATCH 3/5] x86: x2apic pre-enabled but intr-remapping is not enabled, Jan Beulich <=