Merge drm/drm-next into drm-misc-next
[sfrench/cifs-2.6.git] / samples / vfio-mdev / mdpy-fb.c
index 1de5801cd2e8da039c0f2b01db060b3e6dee52c6..3c8001b9e407ea58cfce1819060537cc42a21ccf 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);
@@ -183,6 +183,9 @@ err_release_fb:
 err_release_regions:
        pci_release_regions(pdev);
 
+err_disable_dev:
+       pci_disable_device(pdev);
+
        return ret;
 }
 
@@ -191,7 +194,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[] = {