aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2010-07-08 12:24:52 -0400
committerDave Airlie <airlied@redhat.com>2010-08-02 00:21:37 -0400
commite0a2ca737597de5068634df2706f4cf1c1e32d84 (patch)
tree4e4cfde94b3bad76009b6b021b90188b92bba30f /drivers/gpu/drm/radeon
parentab9e1f5966591dc3e811418e96ba04f284c52458 (diff)
drm/radeon/kms: make sure rio_mem is valid before unmapping it
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>
Diffstat (limited to 'drivers/gpu/drm/radeon')
-rw-r--r--drivers/gpu/drm/radeon/radeon_device.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
index 0fea894fc127..a64811a94519 100644
--- a/drivers/gpu/drm/radeon/radeon_device.c
+++ b/drivers/gpu/drm/radeon/radeon_device.c
@@ -737,7 +737,8 @@ void radeon_device_fini(struct radeon_device *rdev)
737 destroy_workqueue(rdev->wq); 737 destroy_workqueue(rdev->wq);
738 vga_switcheroo_unregister_client(rdev->pdev); 738 vga_switcheroo_unregister_client(rdev->pdev);
739 vga_client_register(rdev->pdev, NULL, NULL, NULL); 739 vga_client_register(rdev->pdev, NULL, NULL, NULL);
740 pci_iounmap(rdev->pdev, rdev->rio_mem); 740 if (rdev->rio_mem)
741 pci_iounmap(rdev->pdev, rdev->rio_mem);
741 rdev->rio_mem = NULL; 742 rdev->rio_mem = NULL;
742 iounmap(rdev->rmmio); 743 iounmap(rdev->rmmio);
743 rdev->rmmio = NULL; 744 rdev->rmmio = NULL;