drm/radeon/kms: make sure rio_mem is valid before unmapping it
authorAlex Deucher <alexdeucher@gmail.com>
Thu, 8 Jul 2010 16:24:52 +0000 (12:24 -0400)
committerDave Airlie <airlied@redhat.com>
Mon, 2 Aug 2010 04:21:37 +0000 (14:21 +1000)
If we were not able to map the io bar in device init, don't attempt
to unmap it in device fini.  All radeons should have a io bar, so
I doubt this would ever trigger, but just to be on the safe side...

Pointed out by: Alberto Milone <alberto.milone@canonical.com>
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/radeon/radeon_device.c

index 0fea894fc1271d428759b26fb8642a22b8394a71..a64811a94519a1ce5bd245d7f2c864e0d68ecf3d 100644 (file)
@@ -737,7 +737,8 @@ void radeon_device_fini(struct radeon_device *rdev)
        destroy_workqueue(rdev->wq);
        vga_switcheroo_unregister_client(rdev->pdev);
        vga_client_register(rdev->pdev, NULL, NULL, NULL);
-       pci_iounmap(rdev->pdev, rdev->rio_mem);
+       if (rdev->rio_mem)
+               pci_iounmap(rdev->pdev, rdev->rio_mem);
        rdev->rio_mem = NULL;
        iounmap(rdev->rmmio);
        rdev->rmmio = NULL;