All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jon Mason <jdmason@us.ibm.com>
To: Andi Kleen <ak@suse.de>
Cc: Muli Ben-Yehuda <muli@il.ibm.com>,
	Muli Ben-Yehuda <mulix@mulix.org>,
	Linux-Kernel <linux-kernel@vger.kernel.org>,
	discuss@x86-64.org, Andrew Morton <akpm@osdl.org>
Subject: [PATCH 1/4] x86-64: Calgary IOMMU - introduce iommu_detected
Date: Wed, 24 May 2006 22:34:09 -0500	[thread overview]
Message-ID: <20060525033408.GC7720@us.ibm.com> (raw)

swiotlb relies on the gart specific iommu_aperture variable to know if
we discovered a hardware IOMMU before swiotlb initialization.  Introduce
iommu_detected to do the same thing, but in a HW IOMMU neutral manner,
in preparation for adding the Calgary HW IOMMU.

Thanks,
Jon

Signed-Off-By: Muli Ben-Yehuda <muli@il.ibm.com>
Signed-Off-By: Jon Mason <jdmason@us.ibm.com>

diff -r 82f66cc5a33b arch/x86_64/kernel/aperture.c
--- a/arch/x86_64/kernel/aperture.c	Tue May 23 18:57:22 2006
+++ b/arch/x86_64/kernel/aperture.c	Tue May 23 14:05:16 2006
@@ -212,6 +212,7 @@
 		if (read_pci_config(0, num, 3, 0x00) != NB_ID_3) 
 			continue;	
 
+		iommu_detected = 1;
 		iommu_aperture = 1; 
 
 		aper_order = (read_pci_config(0, num, 3, 0x90) >> 1) & 7; 
diff -r 82f66cc5a33b arch/x86_64/kernel/pci-dma.c
--- a/arch/x86_64/kernel/pci-dma.c	Tue May 23 18:57:22 2006
+++ b/arch/x86_64/kernel/pci-dma.c	Tue May 23 14:05:16 2006
@@ -32,6 +32,9 @@
 int panic_on_overflow __read_mostly = 0;
 int force_iommu __read_mostly= 0;
 #endif
+
+/* Set this to 1 if there is a HW IOMMU in the system */
+int iommu_detected __read_mostly = 0;
 
 /* Dummy device used for NULL arguments (normally ISA). Better would
    be probably a smaller DMA mask, but this is bug-to-bug compatible
diff -r 82f66cc5a33b arch/x86_64/kernel/pci-gart.c
--- a/arch/x86_64/kernel/pci-gart.c	Tue May 23 18:57:22 2006
+++ b/arch/x86_64/kernel/pci-gart.c	Tue May 23 14:05:16 2006
@@ -624,6 +624,10 @@
 	if (swiotlb)
 		return -1; 
 
+	/* Did we detect a different HW IOMMU? */
+	if (iommu_detected && !iommu_aperture)
+		return -1;
+
 	if (no_iommu ||
 	    (!force_iommu && end_pfn <= MAX_DMA32_PFN) ||
 	    !iommu_aperture ||
diff -r 82f66cc5a33b arch/x86_64/kernel/pci-swiotlb.c
--- a/arch/x86_64/kernel/pci-swiotlb.c	Tue May 23 18:57:22 2006
+++ b/arch/x86_64/kernel/pci-swiotlb.c	Tue May 23 14:05:16 2006
@@ -31,7 +31,7 @@
 void pci_swiotlb_init(void)
 {
 	/* don't initialize swiotlb if iommu=off (no_iommu=1) */
-	if (!iommu_aperture && !no_iommu &&
+	if (!iommu_detected && !no_iommu &&
 	    (end_pfn > MAX_DMA32_PFN || force_iommu))
 	       swiotlb = 1;
 	if (swiotlb) {
diff -r 82f66cc5a33b include/asm-x86_64/proto.h
--- a/include/asm-x86_64/proto.h	Tue May 23 18:57:22 2006
+++ b/include/asm-x86_64/proto.h	Tue May 23 14:05:16 2006
@@ -116,6 +116,7 @@
 extern int acpi_ht;
 extern int acpi_disabled;
 
+extern int iommu_detected;
 #ifdef CONFIG_GART_IOMMU
 extern int fallback_aper_order;
 extern int fallback_aper_force;

             reply	other threads:[~2006-05-25  3:29 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-25  3:34 Jon Mason [this message]
2006-05-25  3:54 ` [PATCH 1/4] x86-64: Calgary IOMMU - introduce iommu_detected Andi Kleen
2006-05-25  4:19   ` Jon Mason
2006-05-25 11:17     ` Muli Ben-Yehuda
2006-05-26  4:46   ` Jon Mason
2006-05-26  7:54     ` Andi Kleen

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=20060525033408.GC7720@us.ibm.com \
    --to=jdmason@us.ibm.com \
    --cc=ak@suse.de \
    --cc=akpm@osdl.org \
    --cc=discuss@x86-64.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=muli@il.ibm.com \
    --cc=mulix@mulix.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.