]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
vfio-ccw: Set pa_nr to 0 if memory allocation fails for pa_iova_pfn
authorFarhan Ali <alifm@linux.ibm.com>
Thu, 11 Jul 2019 14:28:53 +0000 (10:28 -0400)
committerKleber Sacilotto de Souza <kleber.souza@canonical.com>
Tue, 17 Sep 2019 16:02:18 +0000 (18:02 +0200)
BugLink: https://bugs.launchpad.net/bugs/1840520
[ Upstream commit c1ab69268d124ebdbb3864580808188ccd3ea355 ]

So we don't call try to call vfio_unpin_pages() incorrectly.

Fixes: 0a19e61e6d4c ("vfio: ccw: introduce channel program interfaces")
Signed-off-by: Farhan Ali <alifm@linux.ibm.com>
Reviewed-by: Eric Farman <farman@linux.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Message-Id: <33a89467ad6369196ae6edf820cbcb1e2d8d050c.1562854091.git.alifm@linux.ibm.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
drivers/s390/cio/vfio_ccw_cp.c

index 746f04e18b3b439794cbf9e68a468aaa7f05fd15..51058e55c73b5c6e42481d60fc8e19ee22288085 100644 (file)
@@ -122,8 +122,10 @@ static int pfn_array_alloc_pin(struct pfn_array *pa, struct device *mdev,
                                  sizeof(*pa->pa_iova_pfn) +
                                  sizeof(*pa->pa_pfn),
                                  GFP_KERNEL);
-       if (unlikely(!pa->pa_iova_pfn))
+       if (unlikely(!pa->pa_iova_pfn)) {
+               pa->pa_nr = 0;
                return -ENOMEM;
+       }
        pa->pa_pfn = pa->pa_iova_pfn + pa->pa_nr;
 
        ret = pfn_array_pin(pa, mdev);