mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	ia64: clean up swiotlb support
Move the few remaining bits of swiotlb glue towards their callers, and remove the pointless on ia64 swiotlb variable. Signed-off-by: Christoph Hellwig <hch@lst.de> Acked-by: Christian König <christian.koenig@amd.com>
This commit is contained in:
		
							parent
							
								
									543cea9acc
								
							
						
					
					
						commit
						4fac8076df
					
				
					 6 changed files with 20 additions and 58 deletions
				
			
		| 
						 | 
					@ -8,7 +8,6 @@
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
#include <asm/machvec.h>
 | 
					#include <asm/machvec.h>
 | 
				
			||||||
#include <linux/scatterlist.h>
 | 
					#include <linux/scatterlist.h>
 | 
				
			||||||
#include <asm/swiotlb.h>
 | 
					 | 
				
			||||||
#include <linux/dma-debug.h>
 | 
					#include <linux/dma-debug.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define ARCH_HAS_DMA_GET_REQUIRED_MASK
 | 
					#define ARCH_HAS_DMA_GET_REQUIRED_MASK
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,18 +0,0 @@
 | 
				
			||||||
/* SPDX-License-Identifier: GPL-2.0 */
 | 
					 | 
				
			||||||
#ifndef ASM_IA64__SWIOTLB_H
 | 
					 | 
				
			||||||
#define ASM_IA64__SWIOTLB_H
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <linux/dma-mapping.h>
 | 
					 | 
				
			||||||
#include <linux/swiotlb.h>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifdef CONFIG_SWIOTLB
 | 
					 | 
				
			||||||
extern int swiotlb;
 | 
					 | 
				
			||||||
extern void pci_swiotlb_init(void);
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
#define swiotlb 0
 | 
					 | 
				
			||||||
static inline void pci_swiotlb_init(void)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif /* ASM_IA64__SWIOTLB_H */
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
// SPDX-License-Identifier: GPL-2.0
 | 
					// SPDX-License-Identifier: GPL-2.0
 | 
				
			||||||
#include <linux/dma-mapping.h>
 | 
					#include <linux/dma-mapping.h>
 | 
				
			||||||
 | 
					#include <linux/swiotlb.h>
 | 
				
			||||||
#include <linux/export.h>
 | 
					#include <linux/export.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Set this to 1 if there is a HW IOMMU in the system */
 | 
					/* Set this to 1 if there is a HW IOMMU in the system */
 | 
				
			||||||
| 
						 | 
					@ -23,3 +24,11 @@ const struct dma_map_ops *dma_get_ops(struct device *dev)
 | 
				
			||||||
	return dma_ops;
 | 
						return dma_ops;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
EXPORT_SYMBOL(dma_get_ops);
 | 
					EXPORT_SYMBOL(dma_get_ops);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef CONFIG_SWIOTLB
 | 
				
			||||||
 | 
					void __init swiotlb_dma_init(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						dma_ops = &swiotlb_dma_ops;
 | 
				
			||||||
 | 
						swiotlb_init(1);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -104,8 +104,16 @@ void __init pci_iommu_alloc(void)
 | 
				
			||||||
	detect_intel_iommu();
 | 
						detect_intel_iommu();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_SWIOTLB
 | 
					#ifdef CONFIG_SWIOTLB
 | 
				
			||||||
	pci_swiotlb_init();
 | 
						if (!iommu_detected) {
 | 
				
			||||||
#endif
 | 
					#ifdef CONFIG_IA64_GENERIC
 | 
				
			||||||
 | 
							printk(KERN_INFO "PCI-DMA: Re-initialize machine vector.\n");
 | 
				
			||||||
 | 
							machvec_init("dig");
 | 
				
			||||||
 | 
							swiotlb_dma_init();
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
							panic("Unable to find Intel IOMMU");
 | 
				
			||||||
 | 
					#endif /* CONFIG_IA64_GENERIC */
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					#endif /* CONFIG_SWIOTLB */
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,36 +0,0 @@
 | 
				
			||||||
// SPDX-License-Identifier: GPL-2.0
 | 
					 | 
				
			||||||
/* Glue code to lib/swiotlb.c */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <linux/pci.h>
 | 
					 | 
				
			||||||
#include <linux/gfp.h>
 | 
					 | 
				
			||||||
#include <linux/cache.h>
 | 
					 | 
				
			||||||
#include <linux/module.h>
 | 
					 | 
				
			||||||
#include <linux/dma-mapping.h>
 | 
					 | 
				
			||||||
#include <linux/swiotlb.h>
 | 
					 | 
				
			||||||
#include <asm/dma.h>
 | 
					 | 
				
			||||||
#include <asm/iommu.h>
 | 
					 | 
				
			||||||
#include <asm/machvec.h>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int swiotlb __read_mostly;
 | 
					 | 
				
			||||||
EXPORT_SYMBOL(swiotlb);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void __init swiotlb_dma_init(void)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	dma_ops = &swiotlb_dma_ops;
 | 
					 | 
				
			||||||
	swiotlb_init(1);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void __init pci_swiotlb_init(void)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	if (!iommu_detected) {
 | 
					 | 
				
			||||||
#ifdef CONFIG_IA64_GENERIC
 | 
					 | 
				
			||||||
		swiotlb = 1;
 | 
					 | 
				
			||||||
		printk(KERN_INFO "PCI-DMA: Re-initialize machine vector.\n");
 | 
					 | 
				
			||||||
		machvec_init("dig");
 | 
					 | 
				
			||||||
		swiotlb_init(1);
 | 
					 | 
				
			||||||
		dma_ops = &swiotlb_dma_ops;
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
		panic("Unable to find Intel IOMMU");
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -4808,7 +4808,7 @@ int __init intel_iommu_init(void)
 | 
				
			||||||
	up_write(&dmar_global_lock);
 | 
						up_write(&dmar_global_lock);
 | 
				
			||||||
	pr_info("Intel(R) Virtualization Technology for Directed I/O\n");
 | 
						pr_info("Intel(R) Virtualization Technology for Directed I/O\n");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_SWIOTLB
 | 
					#if defined(CONFIG_X86) && defined(CONFIG_SWIOTLB)
 | 
				
			||||||
	swiotlb = 0;
 | 
						swiotlb = 0;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
	dma_ops = &intel_dma_ops;
 | 
						dma_ops = &intel_dma_ops;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue