From 1cde3cc1ac467eb0527ed55127cf3bb983afde80 Mon Sep 17 00:00:00 2001 From: Hong Liu Date: Mon, 19 May 2008 17:06:40 +0800 Subject: 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. --- linux-core/drm_bo.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/linux-core/drm_bo.c b/linux-core/drm_bo.c index 0470825b..f2d3cebf 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); -- cgit v1.2.3