[PATCH v2 10/22] iommufd/viommmu: Add IOMMUFD_CMD_VCMDQ_ALLOC ioctl

Baolu Lu baolu.lu at linux.intel.com
Mon Apr 28 23:11:32 PDT 2025


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



More information about the linux-arm-kernel mailing list