Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751524AbZIGHTu (ORCPT ); Mon, 7 Sep 2009 03:19:50 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751083AbZIGHTu (ORCPT ); Mon, 7 Sep 2009 03:19:50 -0400 Received: from mga01.intel.com ([192.55.52.88]:44692 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751003AbZIGHTt (ORCPT ); Mon, 7 Sep 2009 03:19:49 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.44,345,1249282800"; d="scan'208";a="724524111" Date: Mon, 7 Sep 2009 10:58:07 -0400 From: Youquan Song To: mingo@elte.hu, hpa@zytor.com, tglx@linutronix.de Cc: linux-kernel@vger.kernel.org, dwmw2@infradead.org, Suresh Siddha , youquan.song@intel.com Subject: [PATCH] interrupt remapping: Disallow interrupt remapping if not all ioapic under interrupt remapping Message-ID: <20090907145807.GA30942@youquan-linux.bj.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.9i Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1418 Lines: 44 Current kernel enable interrupt remapping only when all the vt-d unit support interrupt remapping. So it is reasonable we should also disallow enabling intr-remapping if there any io-apics that are not listed under vt-d units. Otherwise we can run into issues. Acked-by: Suresh Siddha Signed-off-by: Youquan Song --- diff --git a/drivers/pci/dmar.c b/drivers/pci/dmar.c index 7b287cb..a8a4383 100644 --- a/drivers/pci/dmar.c +++ b/drivers/pci/dmar.c @@ -570,9 +570,6 @@ int __init dmar_table_init(void) printk(KERN_INFO PREFIX "No ATSR found\n"); #endif -#ifdef CONFIG_INTR_REMAP - parse_ioapics_under_ir(); -#endif return 0; } diff --git a/drivers/pci/intr_remapping.c b/drivers/pci/intr_remapping.c index 4f5b871..ebfa47b 100644 --- a/drivers/pci/intr_remapping.c +++ b/drivers/pci/intr_remapping.c @@ -626,6 +626,11 @@ int __init enable_intr_remapping(int eim) struct dmar_drhd_unit *drhd; int setup = 0; + if (parse_ioapics_under_ir() != 1) { + printk(KERN_INFO "Not enable interrupt remapping\n"); + return -1; + } + for_each_drhd_unit(drhd) { struct intel_iommu *iommu = drhd->iommu; -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/