[PATCH 37/37] vfio: Add support for Shared Virtual Addressing
Yisheng Xie
xieyisheng1 at huawei.com
Mon Mar 19 02:47:15 PDT 2018
Hi Jean,
vfio can be compiled as module, however you use some functions which are not
exported.
comment inline:
[...]
> Add two new ioctl for VFIO containers. VFIO_IOMMU_BIND_PROCESS creates a
> bond between a container and a process address space, identified by a
> device-specific ID named PASID. This allows the device to target DMA
> transactions at the process virtual addresses without a need for mapping
> and unmapping buffers explicitly in the IOMMU. The process page tables are
> shared with the IOMMU, and mechanisms such as PCI ATS/PRI are used to
> handle faults. VFIO_IOMMU_UNBIND_PROCESS removes a bond created with
> VFIO_IOMMU_BIND_PROCESS.
>
> Signed-off-by: Jean-Philippe Brucker <jean-philippe.brucker at arm.com>
> ---
[...]
> +static struct mm_struct *vfio_iommu_get_mm_by_vpid(pid_t vpid)
> +{
> + struct mm_struct *mm;
> + struct task_struct *task;
> +
> + rcu_read_lock();
> + task = find_task_by_vpid(vpid);
Maybe can use?
task = pid_task(find_vpid(params.vpid), PIDTYPE_PID)
> + if (task)
> + get_task_struct(task);
> + rcu_read_unlock();
> + if (!task)
> + return ERR_PTR(-ESRCH);
> +
> + /* Ensure that current has RW access on the mm */
> + mm = mm_access(task, PTRACE_MODE_ATTACH_REALCREDS);
You will try to export mm_access, I find Felix have tried to, but seems give up:
https://patchwork.kernel.org/patch/9744281/
Thanks
Yisheng
More information about the linux-arm-kernel
mailing list