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 <coh...@redhat.com>
Reviewed By: Kirti Wankhede <kwankh...@nvidia.com>
Reviewed-by: Maxim Levitsky <mlevi...@redhat.com>
Signed-off-by: Parav Pandit <pa...@mellanox.com>
---
 drivers/vfio/mdev/mdev_core.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/vfio/mdev/mdev_core.c b/drivers/vfio/mdev/mdev_core.c
index b96fedc77ee5..1299d2e72ce2 100644
--- a/drivers/vfio/mdev/mdev_core.c
+++ b/drivers/vfio/mdev/mdev_core.c
@@ -181,6 +181,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;
        }
-- 
2.19.2

Reply via email to