[PATCH v8 14/29] iommufd/viommu: Add IOMMUFD_CMD_HW_QUEUE_ALLOC ioctl

Jason Gunthorpe jgg at nvidia.com
Wed Jul 9 10:09:04 PDT 2025


On Fri, Jul 04, 2025 at 06:13:30PM -0700, Nicolin Chen wrote:
> +static struct iommufd_access *
> +iommufd_hw_queue_alloc_phys(struct iommu_hw_queue_alloc *cmd,
> +			    struct iommufd_viommu *viommu, phys_addr_t *base_pa)
> +{
> +	struct iommufd_access *access;
> +	struct page **pages;
> +	size_t max_npages;
> +	size_t length;
> +	u64 offset;
> +	size_t i;
> +	int rc;
> +
> +	offset =
> +		cmd->nesting_parent_iova - PAGE_ALIGN(cmd->nesting_parent_iova);

PAGE_ALIGN is ALIGN UP, that is the wrong direction?

It is just:

      offset = cmd->nesting_parent_iova % PAGE_SIZE;

And this is missing:

	*base_pa = (page_to_pfn(pages[0]) << PAGE_SHIFT) + offset;

??

Jason



More information about the linux-arm-kernel mailing list