mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-09-04 20:19:47 +08:00 
			
		
		
		
	powerpc/pseries/iommu: Don't use dma_iommu_ops on secure guests
Secure guest memory is inacessible to devices so regular DMA isn't possible. In that case set devices' dma_map_ops to NULL so that the generic DMA code path will use SWIOTLB to bounce buffers for DMA. Signed-off-by: Thiago Jung Bauermann <bauerman@linux.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20190820021326.6884-14-bauerman@linux.ibm.com
This commit is contained in:
		
							parent
							
								
									4edaac512c
								
							
						
					
					
						commit
						edea902c1c
					
				| @ -36,6 +36,7 @@ | ||||
| #include <asm/udbg.h> | ||||
| #include <asm/mmzone.h> | ||||
| #include <asm/plpar_wrappers.h> | ||||
| #include <asm/svm.h> | ||||
| 
 | ||||
| #include "pseries.h" | ||||
| 
 | ||||
| @ -1319,7 +1320,15 @@ void iommu_init_early_pSeries(void) | ||||
| 	of_reconfig_notifier_register(&iommu_reconfig_nb); | ||||
| 	register_memory_notifier(&iommu_mem_nb); | ||||
| 
 | ||||
| 	set_pci_dma_ops(&dma_iommu_ops); | ||||
| 	/*
 | ||||
| 	 * Secure guest memory is inacessible to devices so regular DMA isn't | ||||
| 	 * possible. | ||||
| 	 * | ||||
| 	 * In that case keep devices' dma_map_ops as NULL so that the generic | ||||
| 	 * DMA code path will use SWIOTLB to bounce buffers for DMA. | ||||
| 	 */ | ||||
| 	if (!is_secure_guest()) | ||||
| 		set_pci_dma_ops(&dma_iommu_ops); | ||||
| } | ||||
| 
 | ||||
| static int __init disable_multitce(char *str) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Thiago Jung Bauermann
						Thiago Jung Bauermann