[PATCH kernel] vfio/spapr/nvlink2: Skip unpinning pages on error exit
Alex Williamson
alex.williamson at redhat.com
Sat Jan 11 03:03:06 AEDT 2020
On Mon, 23 Dec 2019 12:09:27 +1100
Alexey Kardashevskiy <aik at ozlabs.ru> wrote:
> The nvlink2 subdriver for IBM Witherspoon machines preregisters
> GPU memory in the IOMMI API so KVM TCE code can map this memory
> for DMA as well. This is done by mm_iommu_newdev() called from
> vfio_pci_nvgpu_regops::mmap.
>
> In an unlikely event of failure the data->mem remains NULL and
> since mm_iommu_put() (which unregisters the region and unpins memory
> if that was regular memory) does not expect mem==NULL, it should not be
> called.
>
> This adds a check to only call mm_iommu_put() for a valid data->mem.
>
> Fixes: 7f92891778df ("vfio_pci: Add NVIDIA GV100GL [Tesla V100 SXM2] subdriver")
> Signed-off-by: Alexey Kardashevskiy <aik at ozlabs.ru>
> ---
> drivers/vfio/pci/vfio_pci_nvlink2.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/vfio/pci/vfio_pci_nvlink2.c b/drivers/vfio/pci/vfio_pci_nvlink2.c
> index f2983f0f84be..3f5f8198a6bb 100644
> --- a/drivers/vfio/pci/vfio_pci_nvlink2.c
> +++ b/drivers/vfio/pci/vfio_pci_nvlink2.c
> @@ -97,8 +97,10 @@ static void vfio_pci_nvgpu_release(struct vfio_pci_device *vdev,
>
> /* If there were any mappings at all... */
> if (data->mm) {
> - ret = mm_iommu_put(data->mm, data->mem);
> - WARN_ON(ret);
> + if (data->mem) {
> + ret = mm_iommu_put(data->mm, data->mem);
> + WARN_ON(ret);
> + }
>
> mmdrop(data->mm);
> }
Applied to vfio next branch for v5.6. Thanks,
Alex
More information about the Linuxppc-dev
mailing list