@@ -112,7 +112,8 @@ iommufd_hwpt_paging_alloc(struct iommufd_ctx *ictx, struct iommufd_ioas *ioas,
112
112
{
113
113
const u32 valid_flags = IOMMU_HWPT_ALLOC_NEST_PARENT |
114
114
IOMMU_HWPT_ALLOC_DIRTY_TRACKING |
115
- IOMMU_HWPT_FAULT_ID_VALID ;
115
+ IOMMU_HWPT_FAULT_ID_VALID |
116
+ IOMMU_HWPT_ALLOC_PASID ;
116
117
const struct iommu_ops * ops = dev_iommu_ops (idev -> dev );
117
118
struct iommufd_hwpt_paging * hwpt_paging ;
118
119
struct iommufd_hw_pagetable * hwpt ;
@@ -233,7 +234,7 @@ iommufd_hwpt_nested_alloc(struct iommufd_ctx *ictx,
233
234
struct iommufd_hw_pagetable * hwpt ;
234
235
int rc ;
235
236
236
- if ((flags & ~IOMMU_HWPT_FAULT_ID_VALID ) ||
237
+ if ((flags & ~( IOMMU_HWPT_FAULT_ID_VALID | IOMMU_HWPT_ALLOC_PASID ) ) ||
237
238
!user_data -> len || !ops -> domain_alloc_nested )
238
239
return ERR_PTR (- EOPNOTSUPP );
239
240
if (parent -> auto_domain || !parent -> nest_parent ||
@@ -290,7 +291,7 @@ iommufd_viommu_alloc_hwpt_nested(struct iommufd_viommu *viommu, u32 flags,
290
291
struct iommufd_hw_pagetable * hwpt ;
291
292
int rc ;
292
293
293
- if (flags & ~IOMMU_HWPT_FAULT_ID_VALID )
294
+ if (flags & ~( IOMMU_HWPT_FAULT_ID_VALID | IOMMU_HWPT_ALLOC_PASID ) )
294
295
return ERR_PTR (- EOPNOTSUPP );
295
296
if (!user_data -> len )
296
297
return ERR_PTR (- EOPNOTSUPP );
0 commit comments