From 4ef899f3e25c519552e58b15bc82d779eafd5330 Mon Sep 17 00:00:00 2001 From: Hong Liu Date: Fri, 9 May 2008 10:15:17 +0800 Subject: [PATCH] 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. --- linux-core/drm_bo.c | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) diff --git a/linux-core/drm_bo.c b/linux-core/drm_bo.c index 301f946..db0dae7 100644 --- a/linux-core/drm_bo.c +++ b/linux-core/drm_bo.c @@ -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); -- 1.5.0.5