AMD IOMMU: add protection domain flags
Imapct: add a new struct member to 'struct protection_domain' When using protection domains for dma_ops and KVM its better to know for which subsystem it was allocated. Add a flags member to struct protection domain for that purpose. Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
This commit is contained in:
		
							parent
							
								
									43f4960983
								
							
						
					
					
						commit
						9fdb19d64c
					
				| @ -190,16 +190,20 @@ | ||||
| /* FIXME: move this macro to <linux/pci.h> */ | ||||
| #define PCI_BUS(x) (((x) >> 8) & 0xff) | ||||
| 
 | ||||
| /* Protection domain flags */ | ||||
| #define PD_DMA_OPS_MASK		(1UL << 0) /* domain used for dma_ops */ | ||||
| 
 | ||||
| /*
 | ||||
|  * This structure contains generic data for  IOMMU protection domains | ||||
|  * independent of their use. | ||||
|  */ | ||||
| struct protection_domain { | ||||
| 	spinlock_t lock; /* mostly used to lock the page table*/ | ||||
| 	u16 id;		 /* the domain id written to the device table */ | ||||
| 	int mode;	 /* paging mode (0-6 levels) */ | ||||
| 	u64 *pt_root;	 /* page table root pointer */ | ||||
| 	void *priv;	 /* private data */ | ||||
| 	spinlock_t lock;	/* mostly used to lock the page table*/ | ||||
| 	u16 id;			/* the domain id written to the device table */ | ||||
| 	int mode;		/* paging mode (0-6 levels) */ | ||||
| 	u64 *pt_root;		/* page table root pointer */ | ||||
| 	unsigned long flags;	/* flags to find out type of domain */ | ||||
| 	void *priv;		/* private data */ | ||||
| }; | ||||
| 
 | ||||
| /*
 | ||||
|  | ||||
| @ -729,6 +729,7 @@ static struct dma_ops_domain *dma_ops_domain_alloc(struct amd_iommu *iommu, | ||||
| 		goto free_dma_dom; | ||||
| 	dma_dom->domain.mode = PAGE_MODE_3_LEVEL; | ||||
| 	dma_dom->domain.pt_root = (void *)get_zeroed_page(GFP_KERNEL); | ||||
| 	dma_dom->domain.flags = PD_DMA_OPS_MASK; | ||||
| 	dma_dom->domain.priv = dma_dom; | ||||
| 	if (!dma_dom->domain.pt_root) | ||||
| 		goto free_dma_dom; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user