free dummy read page if fail to init mm

Since drm_bo_driver_init will be called in driver_load, we need to free
what it alloced when error to avoid memory leak.
main
Hong Liu 2008-05-09 10:15:17 +08:00 committed by Jesse Barnes
parent f1b9bbe2b8
commit b2dee13f5d
1 changed files with 7 additions and 1 deletions

View File

@ -2406,8 +2406,14 @@ int drm_bo_driver_init(struct drm_device *dev)
* Other types need to be driver / IOCTL initialized.
*/
ret = drm_bo_init_mm(dev, DRM_BO_MEM_LOCAL, 0, 0, 1);
if (ret)
if (ret) {
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,15))
ClearPageReserved(bm->dummy_read_page);
#endif
__free_page(bm->dummy_read_page);
bm->dummy_read_page = NULL;
goto out_unlock;
}
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)
INIT_WORK(&bm->wq, &drm_bo_delayed_workqueue, dev);