Browse Source

cirrus: avoid crash if driver fails to load

If we haven't inited the mm code, don't try and tear it down.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie 13 years ago
parent
commit
93b4cc56aa
2 changed files with 6 additions and 1 deletions
  1. 1 1
      drivers/gpu/drm/cirrus/cirrus_drv.h
  2. 5 0
      drivers/gpu/drm/cirrus/cirrus_ttm.c

+ 1 - 1
drivers/gpu/drm/cirrus/cirrus_drv.h

@@ -145,7 +145,7 @@ struct cirrus_device {
 		struct ttm_bo_device bdev;
 		atomic_t validate_sequence;
 	} ttm;
-
+	bool mm_inited;
 };
 
 

+ 5 - 0
drivers/gpu/drm/cirrus/cirrus_ttm.c

@@ -275,12 +275,17 @@ int cirrus_mm_init(struct cirrus_device *cirrus)
 				    pci_resource_len(dev->pdev, 0),
 				    DRM_MTRR_WC);
 
+	cirrus->mm_inited = true;
 	return 0;
 }
 
 void cirrus_mm_fini(struct cirrus_device *cirrus)
 {
 	struct drm_device *dev = cirrus->dev;
+
+	if (!cirrus->mm_inited)
+		return;
+
 	ttm_bo_device_release(&cirrus->ttm.bdev);
 
 	cirrus_ttm_global_release(cirrus);