From: Hong Liu Date: Mon, 19 May 2008 09:06:40 +0000 (+0800) Subject: i915: check dummy page before freeing X-Git-Tag: libdrm-2.4.3~16^2~181 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1cde3cc1ac467eb0527ed55127cf3bb983afde80;p=platform%2Fupstream%2Flibdrm.git i915: check dummy page before freeing The dummy read page will point to NULL if drm_bo_driver_init failed at firstopen (modeset is not enabled), and will cause kernel oops at subsequent drm_lastclose call, so be sure to check it. --- diff --git a/linux-core/drm_bo.c b/linux-core/drm_bo.c index 0470825..f2d3ceb 100644 --- a/linux-core/drm_bo.c +++ b/linux-core/drm_bo.c @@ -2361,10 +2361,12 @@ int drm_bo_driver_finish(struct drm_device *dev) if (list_empty(&bm->unfenced)) DRM_DEBUG("Unfenced list was clean\n"); + if (bm->dummy_read_page) { #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,15)) - ClearPageReserved(bm->dummy_read_page); + ClearPageReserved(bm->dummy_read_page); #endif - __free_page(bm->dummy_read_page); + __free_page(bm->dummy_read_page); + } out: mutex_unlock(&dev->struct_mutex);