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>
This commit is contained in:
Родитель
bc42aabc6a
Коммит
93b4cc56aa
|
@ -145,7 +145,7 @@ struct cirrus_device {
|
||||||
struct ttm_bo_device bdev;
|
struct ttm_bo_device bdev;
|
||||||
atomic_t validate_sequence;
|
atomic_t validate_sequence;
|
||||||
} ttm;
|
} ttm;
|
||||||
|
bool mm_inited;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -275,12 +275,17 @@ int cirrus_mm_init(struct cirrus_device *cirrus)
|
||||||
pci_resource_len(dev->pdev, 0),
|
pci_resource_len(dev->pdev, 0),
|
||||||
DRM_MTRR_WC);
|
DRM_MTRR_WC);
|
||||||
|
|
||||||
|
cirrus->mm_inited = true;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void cirrus_mm_fini(struct cirrus_device *cirrus)
|
void cirrus_mm_fini(struct cirrus_device *cirrus)
|
||||||
{
|
{
|
||||||
struct drm_device *dev = cirrus->dev;
|
struct drm_device *dev = cirrus->dev;
|
||||||
|
|
||||||
|
if (!cirrus->mm_inited)
|
||||||
|
return;
|
||||||
|
|
||||||
ttm_bo_device_release(&cirrus->ttm.bdev);
|
ttm_bo_device_release(&cirrus->ttm.bdev);
|
||||||
|
|
||||||
cirrus_ttm_global_release(cirrus);
|
cirrus_ttm_global_release(cirrus);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче