Message ID | 20231115030226.16700-4-baolu.lu@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | iommu: Prepare to deliver page faults to user space | expand |
On 2023/11/15 11:02, Lu Baolu wrote: > The unrecoverable fault data is not used anywhere. Remove it to avoid > dead code. > > Suggested-by: Kevin Tian <kevin.tian@intel.com> > Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> > Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> > Reviewed-by: Kevin Tian <kevin.tian@intel.com> > --- > include/linux/iommu.h | 70 +------------------------------------------ > 1 file changed, 1 insertion(+), 69 deletions(-) > > diff --git a/include/linux/iommu.h b/include/linux/iommu.h > index c2e2225184cf..81eee1afec72 100644 > --- a/include/linux/iommu.h > +++ b/include/linux/iommu.h > @@ -50,69 +50,9 @@ struct iommu_dma_cookie; > > /* Generic fault types, can be expanded IRQ remapping fault */ > enum iommu_fault_type { > - IOMMU_FAULT_DMA_UNRECOV = 1, /* unrecoverable fault */ > IOMMU_FAULT_PAGE_REQ, /* page request fault */ a nit, do you kno why this enum was starting from 1? Should it still start from 1 after deleting UNRECOV? > }; > > -enum iommu_fault_reason { > - IOMMU_FAULT_REASON_UNKNOWN = 0, > - > - /* Could not access the PASID table (fetch caused external abort) */ > - IOMMU_FAULT_REASON_PASID_FETCH, > - > - /* PASID entry is invalid or has configuration errors */ > - IOMMU_FAULT_REASON_BAD_PASID_ENTRY, > - > - /* > - * PASID is out of range (e.g. exceeds the maximum PASID > - * supported by the IOMMU) or disabled. > - */ > - IOMMU_FAULT_REASON_PASID_INVALID, > - > - /* > - * An external abort occurred fetching (or updating) a translation > - * table descriptor > - */ > - IOMMU_FAULT_REASON_WALK_EABT, > - > - /* > - * Could not access the page table entry (Bad address), > - * actual translation fault > - */ > - IOMMU_FAULT_REASON_PTE_FETCH, > - > - /* Protection flag check failed */ > - IOMMU_FAULT_REASON_PERMISSION, > - > - /* access flag check failed */ > - IOMMU_FAULT_REASON_ACCESS, > - > - /* Output address of a translation stage caused Address Size fault */ > - IOMMU_FAULT_REASON_OOR_ADDRESS, > -}; > - > -/** > - * struct iommu_fault_unrecoverable - Unrecoverable fault data > - * @reason: reason of the fault, from &enum iommu_fault_reason > - * @flags: parameters of this fault (IOMMU_FAULT_UNRECOV_* values) > - * @pasid: Process Address Space ID > - * @perm: requested permission access using by the incoming transaction > - * (IOMMU_FAULT_PERM_* values) > - * @addr: offending page address > - * @fetch_addr: address that caused a fetch abort, if any > - */ > -struct iommu_fault_unrecoverable { > - __u32 reason; > -#define IOMMU_FAULT_UNRECOV_PASID_VALID (1 << 0) > -#define IOMMU_FAULT_UNRECOV_ADDR_VALID (1 << 1) > -#define IOMMU_FAULT_UNRECOV_FETCH_ADDR_VALID (1 << 2) > - __u32 flags; > - __u32 pasid; > - __u32 perm; > - __u64 addr; > - __u64 fetch_addr; > -}; > - > /** > * struct iommu_fault_page_request - Page Request data > * @flags: encodes whether the corresponding fields are valid and whether this > @@ -142,19 +82,11 @@ struct iommu_fault_page_request { > /** > * struct iommu_fault - Generic fault data > * @type: fault type from &enum iommu_fault_type > - * @padding: reserved for future use (should be zero) > - * @event: fault event, when @type is %IOMMU_FAULT_DMA_UNRECOV > * @prm: Page Request message, when @type is %IOMMU_FAULT_PAGE_REQ > - * @padding2: sets the fault size to allow for future extensions > */ > struct iommu_fault { > __u32 type; > - __u32 padding; > - union { > - struct iommu_fault_unrecoverable event; > - struct iommu_fault_page_request prm; > - __u8 padding2[56]; > - }; > + struct iommu_fault_page_request prm; > }; > > /**
On 2023/12/4 18:58, Yi Liu wrote: > On 2023/11/15 11:02, Lu Baolu wrote: >> The unrecoverable fault data is not used anywhere. Remove it to avoid >> dead code. >> >> Suggested-by: Kevin Tian <kevin.tian@intel.com> >> Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> >> Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> >> Reviewed-by: Kevin Tian <kevin.tian@intel.com> >> --- >> include/linux/iommu.h | 70 +------------------------------------------ >> 1 file changed, 1 insertion(+), 69 deletions(-) >> >> diff --git a/include/linux/iommu.h b/include/linux/iommu.h >> index c2e2225184cf..81eee1afec72 100644 >> --- a/include/linux/iommu.h >> +++ b/include/linux/iommu.h >> @@ -50,69 +50,9 @@ struct iommu_dma_cookie; >> /* Generic fault types, can be expanded IRQ remapping fault */ >> enum iommu_fault_type { >> - IOMMU_FAULT_DMA_UNRECOV = 1, /* unrecoverable fault */ >> IOMMU_FAULT_PAGE_REQ, /* page request fault */ > > a nit, do you kno why this enum was starting from 1? Should it still > start from 1 after deleting UNRECOV? As Jason suggested in another thread, we will address this issue in another thread. I am not sure for now whether we will remove the fault type field or re-use the previous scheme. Best regards, baolu
diff --git a/include/linux/iommu.h b/include/linux/iommu.h index c2e2225184cf..81eee1afec72 100644 --- a/include/linux/iommu.h +++ b/include/linux/iommu.h @@ -50,69 +50,9 @@ struct iommu_dma_cookie; /* Generic fault types, can be expanded IRQ remapping fault */ enum iommu_fault_type { - IOMMU_FAULT_DMA_UNRECOV = 1, /* unrecoverable fault */ IOMMU_FAULT_PAGE_REQ, /* page request fault */ }; -enum iommu_fault_reason { - IOMMU_FAULT_REASON_UNKNOWN = 0, - - /* Could not access the PASID table (fetch caused external abort) */ - IOMMU_FAULT_REASON_PASID_FETCH, - - /* PASID entry is invalid or has configuration errors */ - IOMMU_FAULT_REASON_BAD_PASID_ENTRY, - - /* - * PASID is out of range (e.g. exceeds the maximum PASID - * supported by the IOMMU) or disabled. - */ - IOMMU_FAULT_REASON_PASID_INVALID, - - /* - * An external abort occurred fetching (or updating) a translation - * table descriptor - */ - IOMMU_FAULT_REASON_WALK_EABT, - - /* - * Could not access the page table entry (Bad address), - * actual translation fault - */ - IOMMU_FAULT_REASON_PTE_FETCH, - - /* Protection flag check failed */ - IOMMU_FAULT_REASON_PERMISSION, - - /* access flag check failed */ - IOMMU_FAULT_REASON_ACCESS, - - /* Output address of a translation stage caused Address Size fault */ - IOMMU_FAULT_REASON_OOR_ADDRESS, -}; - -/** - * struct iommu_fault_unrecoverable - Unrecoverable fault data - * @reason: reason of the fault, from &enum iommu_fault_reason - * @flags: parameters of this fault (IOMMU_FAULT_UNRECOV_* values) - * @pasid: Process Address Space ID - * @perm: requested permission access using by the incoming transaction - * (IOMMU_FAULT_PERM_* values) - * @addr: offending page address - * @fetch_addr: address that caused a fetch abort, if any - */ -struct iommu_fault_unrecoverable { - __u32 reason; -#define IOMMU_FAULT_UNRECOV_PASID_VALID (1 << 0) -#define IOMMU_FAULT_UNRECOV_ADDR_VALID (1 << 1) -#define IOMMU_FAULT_UNRECOV_FETCH_ADDR_VALID (1 << 2) - __u32 flags; - __u32 pasid; - __u32 perm; - __u64 addr; - __u64 fetch_addr; -}; - /** * struct iommu_fault_page_request - Page Request data * @flags: encodes whether the corresponding fields are valid and whether this @@ -142,19 +82,11 @@ struct iommu_fault_page_request { /** * struct iommu_fault - Generic fault data * @type: fault type from &enum iommu_fault_type - * @padding: reserved for future use (should be zero) - * @event: fault event, when @type is %IOMMU_FAULT_DMA_UNRECOV * @prm: Page Request message, when @type is %IOMMU_FAULT_PAGE_REQ - * @padding2: sets the fault size to allow for future extensions */ struct iommu_fault { __u32 type; - __u32 padding; - union { - struct iommu_fault_unrecoverable event; - struct iommu_fault_page_request prm; - __u8 padding2[56]; - }; + struct iommu_fault_page_request prm; }; /**