samples: vfio-mdev: Fix missing pci_disable_device() in mdpy_fb_probe()
authorShang XiaoJing <shangxiaojing@huawei.com>
Thu, 8 Dec 2022 01:33:41 +0000 (09:33 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 31 Dec 2022 12:14:31 +0000 (13:14 +0100)
[ Upstream commit d1f0f50fbbbbca1e3e8157e51934613bf88f6d44 ]

Add missing pci_disable_device() in fail path of mdpy_fb_probe().
Besides, fix missing release functions in mdpy_fb_remove().

Fixes: cacade1946a4 ("sample: vfio mdev display - guest driver")
Signed-off-by: Shang XiaoJing <shangxiaojing@huawei.com>
Link: https://lore.kernel.org/r/20221208013341.3999-1-shangxiaojing@huawei.com
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
samples/vfio-mdev/mdpy-fb.c

index 9ec93d9..4eb7aa1 100644 (file)
@@ -109,7 +109,7 @@ static int mdpy_fb_probe(struct pci_dev *pdev,
 
        ret = pci_request_regions(pdev, "mdpy-fb");
        if (ret < 0)
-               return ret;
+               goto err_disable_dev;
 
        pci_read_config_dword(pdev, MDPY_FORMAT_OFFSET, &format);
        pci_read_config_dword(pdev, MDPY_WIDTH_OFFSET,  &width);
@@ -191,6 +191,9 @@ err_release_fb:
 err_release_regions:
        pci_release_regions(pdev);
 
+err_disable_dev:
+       pci_disable_device(pdev);
+
        return ret;
 }
 
@@ -199,7 +202,10 @@ static void mdpy_fb_remove(struct pci_dev *pdev)
        struct fb_info *info = pci_get_drvdata(pdev);
 
        unregister_framebuffer(info);
+       iounmap(info->screen_base);
        framebuffer_release(info);
+       pci_release_regions(pdev);
+       pci_disable_device(pdev);
 }
 
 static struct pci_device_id mdpy_fb_pci_table[] = {