Sorry about fallout from my dma mapping ops unification.
=
From: FUJITA Tomonori <[email protected]>
Subject: [PATCH] IA64: fix the compile error on IA64_DIG_VTD
This moves iommu_detected to arch/ia64/kernel/dma-mapping.c from
arch/ia64/kernel/pci-swiotlb.c to fix the following error on on
IA64_DIG_VTD:
arch/ia64/kernel/built-in.o: In function `pci_iommu_init':
pci-dma.c:(.init.text+0xa021): undefined reference to `iommu_detected'
pci-dma.c:(.init.text+0xa030): undefined reference to `iommu_detected'
drivers/built-in.o: In function `detect_intel_iommu':
(.init.text+0x11c0): undefined reference to `iommu_detected'
drivers/built-in.o: In function `detect_intel_iommu':
(.init.text+0x11e1): undefined reference to `iommu_detected'
iommu_detected is used to handle IOMMUs so I guess that
arch/ia64/kernel/dma-mapping.c is ok (there might be a better place
for it though).
Signed-off-by: FUJITA Tomonori <[email protected]>
---
arch/ia64/kernel/dma-mapping.c | 3 +++
arch/ia64/kernel/pci-swiotlb.c | 3 ---
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/ia64/kernel/dma-mapping.c b/arch/ia64/kernel/dma-mapping.c
index 7060e13..086a2ae 100644
--- a/arch/ia64/kernel/dma-mapping.c
+++ b/arch/ia64/kernel/dma-mapping.c
@@ -1,5 +1,8 @@
#include <linux/dma-mapping.h>
+/* Set this to 1 if there is a HW IOMMU in the system */
+int iommu_detected __read_mostly;
+
struct dma_map_ops *dma_ops;
EXPORT_SYMBOL(dma_ops);
diff --git a/arch/ia64/kernel/pci-swiotlb.c b/arch/ia64/kernel/pci-swiotlb.c
index d21dea4..717ad4f 100644
--- a/arch/ia64/kernel/pci-swiotlb.c
+++ b/arch/ia64/kernel/pci-swiotlb.c
@@ -13,9 +13,6 @@
int swiotlb __read_mostly;
EXPORT_SYMBOL(swiotlb);
-/* Set this to 1 if there is a HW IOMMU in the system */
-int iommu_detected __read_mostly;
-
struct dma_map_ops swiotlb_dma_ops = {
.alloc_coherent = swiotlb_alloc_coherent,
.free_coherent = swiotlb_free_coherent,
--
1.6.0.6
* FUJITA Tomonori <[email protected]> wrote:
> Sorry about fallout from my dma mapping ops unification.
>
> =
> From: FUJITA Tomonori <[email protected]>
> Subject: [PATCH] IA64: fix the compile error on IA64_DIG_VTD
>
> This moves iommu_detected to arch/ia64/kernel/dma-mapping.c from
> arch/ia64/kernel/pci-swiotlb.c to fix the following error on on
> IA64_DIG_VTD:
>
> arch/ia64/kernel/built-in.o: In function `pci_iommu_init':
> pci-dma.c:(.init.text+0xa021): undefined reference to `iommu_detected'
> pci-dma.c:(.init.text+0xa030): undefined reference to `iommu_detected'
> drivers/built-in.o: In function `detect_intel_iommu':
> (.init.text+0x11c0): undefined reference to `iommu_detected'
> drivers/built-in.o: In function `detect_intel_iommu':
> (.init.text+0x11e1): undefined reference to `iommu_detected'
>
> iommu_detected is used to handle IOMMUs so I guess that
> arch/ia64/kernel/dma-mapping.c is ok (there might be a better place
> for it though).
>
> Signed-off-by: FUJITA Tomonori <[email protected]>
> ---
> arch/ia64/kernel/dma-mapping.c | 3 +++
> arch/ia64/kernel/pci-swiotlb.c | 3 ---
> 2 files changed, 3 insertions(+), 3 deletions(-)
Applied to tip/core/iommu, thanks!
Ingo
* Ingo Molnar <[email protected]> wrote:
> > ---
> > arch/ia64/kernel/dma-mapping.c | 3 +++
> > arch/ia64/kernel/pci-swiotlb.c | 3 ---
> > 2 files changed, 3 insertions(+), 3 deletions(-)
>
> Applied to tip/core/iommu, thanks!
Tony, is this fix fine with you too?
Ingo
> > > ---
> > > arch/ia64/kernel/dma-mapping.c | 3 +++
> > > arch/ia64/kernel/pci-swiotlb.c | 3 ---
> > > 2 files changed, 3 insertions(+), 3 deletions(-)
> >
> > Applied to tip/core/iommu, thanks!
>
> Tony, is this fix fine with you too?
It works ... and dma-mapping.c is OK as a location for the
definition. But there seemes to be some small scope for a
related cleanup:
There are "extern" declarations for "iommu_detected" in both
<asm/iommu.h> (x86 and ia64) and also in <linux/dmar.h>
Does having both of these avoid some #include hell?
-Tony
On Tue, 27 Jan 2009 09:17:58 -0800
"Luck, Tony" <[email protected]> wrote:
> > > > ---
> > > > arch/ia64/kernel/dma-mapping.c | 3 +++
> > > > arch/ia64/kernel/pci-swiotlb.c | 3 ---
> > > > 2 files changed, 3 insertions(+), 3 deletions(-)
> > >
> > > Applied to tip/core/iommu, thanks!
> >
> > Tony, is this fix fine with you too?
>
> It works ... and dma-mapping.c is OK as a location for the
> definition. But there seemes to be some small scope for a
> related cleanup:
>
> There are "extern" declarations for "iommu_detected" in both
> <asm/iommu.h> (x86 and ia64) and also in <linux/dmar.h>
We can remove them in dmar.h. X86 exported iommu_detected and no_iommu
in several IOMMU code and we merged them into dmar.h. Seems that we
forgot to clean up dmar.h.
> Does having both of these avoid some #include hell?
I think we could. The root problem is that X86 sets up IOMMU in a very
hacky way. When we added VT-d support to IA64, we needed to add the
hacky code to IA64 even though IA64 doesn't need it.
We need to clean up the code to set up IOMMUs. I'll try later.
=
From: FUJITA Tomonori <[email protected]>
Subject: [PATCH -tip] intel-iommu: no need to export iommu_detected and no_iommu in dmar.h
The users of intel-iommu (x86 and IA64) export iommu_detected and
no_iommu in their own iommu.h.
Signed-off-by: FUJITA Tomonori <[email protected]>
---
include/linux/dmar.h | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/include/linux/dmar.h b/include/linux/dmar.h
index f284407..3e82a13 100644
--- a/include/linux/dmar.h
+++ b/include/linux/dmar.h
@@ -129,7 +129,6 @@ extern void dmar_msi_write(int irq, struct msi_msg *msg);
extern int dmar_set_interrupt(struct intel_iommu *iommu);
extern int arch_setup_dmar_msi(unsigned int irq);
-extern int iommu_detected, no_iommu;
extern struct list_head dmar_rmrr_units;
struct dmar_rmrr_unit {
struct list_head list; /* list of rmrr units */
--
1.6.0.6
On Wed, 28 Jan 2009 10:00:11 +0900
FUJITA Tomonori <[email protected]> wrote:
> On Tue, 27 Jan 2009 09:17:58 -0800
> "Luck, Tony" <[email protected]> wrote:
>
> > > > > ---
> > > > > arch/ia64/kernel/dma-mapping.c | 3 +++
> > > > > arch/ia64/kernel/pci-swiotlb.c | 3 ---
> > > > > 2 files changed, 3 insertions(+), 3 deletions(-)
> > > >
> > > > Applied to tip/core/iommu, thanks!
> > >
> > > Tony, is this fix fine with you too?
> >
> > It works ... and dma-mapping.c is OK as a location for the
> > definition. But there seemes to be some small scope for a
> > related cleanup:
> >
> > There are "extern" declarations for "iommu_detected" in both
> > <asm/iommu.h> (x86 and ia64) and also in <linux/dmar.h>
>
> We can remove them in dmar.h. X86 exported iommu_detected and no_iommu
> in several IOMMU code and we merged them into dmar.h. Seems that we
~~~~~~
asm/iommu.h