On Mon, Apr 28, 2025 at 09:32:04AM +0800, Baolu Lu wrote: > On 4/26/25 13:58, Nicolin Chen wrote: > > +int iommufd_vcmdq_alloc_ioctl(struct iommufd_ucmd *ucmd) > > +{ > > + struct iommu_vcmdq_alloc *cmd = ucmd->cmd; > > + struct iommufd_viommu *viommu; > > + struct iommufd_vcmdq *vcmdq; > > + struct page **pages; > > + int max_npages, i; > > + dma_addr_t end; > > + int rc; > > + > > + if (cmd->flags || cmd->type == IOMMU_VCMDQ_TYPE_DEFAULT) > > I don't follow the check of 'cmd->type == IOMMU_VCMDQ_TYPE_DEFAULT' > here. My understanding is that it states that "other values of type are > not supported". If so, shouldn't it be, > > if (cmd->flags || cmd->type != IOMMU_VCMDQ_TYPE_DEFAULT) > > ?
No. Only other (new) types will be supported. We have this: "* @IOMMU_VCMDQ_TYPE_DEFAULT: Reserved for future use" which means driver should define a new type. We have the same DEFAULT type in vIOMMU/vEVENTQ allocators by the way. Thanks Nicolin