|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] [PATCH 2/2] Fix calling order wherein iommu_detected would b
The iommu_detected flag was set _after_ the Software IO TLB was initialized.
This caused the Xen software IO TLB to be init and right after that the
software IO TLB.
Merging xen_swiotlb_init and xen_swiotlb_init_alloc in one function that sets
this argument fixes the issue.
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
---
arch/x86/include/asm/xen/swiotlb.h | 6 ++----
arch/x86/kernel/pci-dma.c | 2 +-
arch/x86/xen/pci-swiotlb.c | 13 +++----------
3 files changed, 6 insertions(+), 15 deletions(-)
diff --git a/arch/x86/include/asm/xen/swiotlb.h
b/arch/x86/include/asm/xen/swiotlb.h
index 81d8502..d094f89 100644
--- a/arch/x86/include/asm/xen/swiotlb.h
+++ b/arch/x86/include/asm/xen/swiotlb.h
@@ -2,11 +2,9 @@
#define _ASM_X86_XEN_SWIOTLB_H
#ifdef CONFIG_PCI_XEN
-extern int xen_swiotlb_init(void);
-extern void xen_swiotlb_init_alloc(void);
+extern void xen_swiotlb_init(void);
#else
-static inline int xen_swiotlb_init(void) { return -ENODEV; }
-static void xen_swiotlb_init_alloc(void) { }
+static void xen_swiotlb_init(void) { }
#endif
#endif
diff --git a/arch/x86/kernel/pci-dma.c b/arch/x86/kernel/pci-dma.c
index 90da583..4695757 100644
--- a/arch/x86/kernel/pci-dma.c
+++ b/arch/x86/kernel/pci-dma.c
@@ -130,7 +130,7 @@ void __init pci_iommu_alloc(void)
amd_iommu_detect();
- xen_swiotlb_init_alloc();
+ xen_swiotlb_init();
pci_swiotlb_init();
}
diff --git a/arch/x86/xen/pci-swiotlb.c b/arch/x86/xen/pci-swiotlb.c
index 19b78e2..76194d4 100644
--- a/arch/x86/xen/pci-swiotlb.c
+++ b/arch/x86/xen/pci-swiotlb.c
@@ -970,19 +970,12 @@ static struct dma_map_ops xen_swiotlb_dma_ops = {
.dma_supported = NULL,
};
-int __init xen_swiotlb_init(void)
+void __init xen_swiotlb_init(void)
{
- if (xen_pv_domain() && xen_initial_domain()) {
- iommu_detected = 1;
- return 0;
- }
- return -ENODEV;
-}
-void __init xen_swiotlb_init_alloc(void)
-{
- if (xen_pv_domain() && xen_initial_domain()) {
+ if (xen_initial_domain()) {
printk(KERN_INFO "PCI-DMA: Using Xen software bounce buffering
for IO (Xen-SWIOTLB)\n");
xen_swiotlb_init_with_default_size(64 * (1<<20)); /*
default to 64MB */
dma_ops = &xen_swiotlb_dma_ops;
+ iommu_detected = 1;
}
}
--
1.6.2.5
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-devel] [PATCH 2/2] Fix calling order wherein iommu_detected would be set after software IO TLB was initialized causing double IO TLB allocation.,
Konrad Rzeszutek Wilk <=
|
|
|
|
|