On 4/29/25 02:58, Nicolin Chen wrote:
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.
Okay, thanks for the explanation.
The iommu driver's callback will return a failure if the type is not supported. Then it's fine.
Thanks, baolu