]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
vfio/mdev: Avoid release parent reference during error path
authorParav Pandit <parav@mellanox.com>
Tue, 30 Apr 2019 22:49:28 +0000 (17:49 -0500)
committerKhalid Elmously <khalid.elmously@canonical.com>
Fri, 14 Feb 2020 05:29:37 +0000 (00:29 -0500)
BugLink: https://bugs.launchpad.net/bugs/1863019
[ Upstream commit 60e7f2c3fe9919cee9534b422865eed49f4efb15 ]

During mdev parent registration in mdev_register_device(),
if parent device is duplicate, it releases the reference of existing
parent device.
This is incorrect. Existing parent device should not be touched.

Fixes: 7b96953bc640 ("vfio: Mediated device Core driver")
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Kirti Wankhede <kwankhede@nvidia.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Signed-off-by: Parav Pandit <parav@mellanox.com>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
drivers/vfio/mdev/mdev_core.c

index 0212f0ee8aea7577246c01c99821e0ba12cf9373..8cfa712308773f7653a204ef4341e74491d742f2 100644 (file)
@@ -182,6 +182,7 @@ int mdev_register_device(struct device *dev, const struct mdev_parent_ops *ops)
        /* Check for duplicate */
        parent = __find_parent_device(dev);
        if (parent) {
+               parent = NULL;
                ret = -EEXIST;
                goto add_dev_err;
        }