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