From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jonathan Morton Subject: Re: [PATCH] ttm_get_pages() will OOPS with highmem allocation Date: Fri, 16 Nov 2012 19:19:01 +0200 Message-ID: <20121116191901.22b3e11c@sd070> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from na3sys009aog126.obsmtp.com (na3sys009aog126.obsmtp.com [74.125.149.155]) by gabe.freedesktop.org (Postfix) with ESMTP id 5097DE5DE8 for ; Fri, 16 Nov 2012 09:19:09 -0800 (PST) Received: by mail-wi0-f197.google.com with SMTP id hm6so289955wib.0 for ; Fri, 16 Nov 2012 09:19:07 -0800 (PST) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: dri-devel@lists.freedesktop.org Cc: stable@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org Reposting from this kernel bug: https://bugzilla.kernel.org/show_bug.cgi?id=50241 I've tested the patch and it solves a highly repeatable OOPS with the CedarView driver that I'm porting. Reviewed-by: Thomas Hellstrom >>From 3552913d3a1c2d3c4ce158e91dc18cd12b522cb2 Mon Sep 17 00:00:00 2001 From: Yakui Zhao Date: Tue, 7 Feb 2012 15:33:13 -0500 Subject: [PATCH] Clear the ttm page allocated from high memory zone correctly The TTM page can be allocated from high memory. In such case it is wrong to use the page_address(page) as the virtual address for the high memory page. Signed-off-by: Zhao Yakui --- drivers/gpu/drm/ttm/ttm_page_alloc.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc.c b/drivers/gpu/drm/ttm/ttm_page_alloc.c index d948575..df976d9 100644 --- a/drivers/gpu/drm/ttm/ttm_page_alloc.c +++ b/drivers/gpu/drm/ttm/ttm_page_alloc.c @@ -708,7 +708,10 @@ int ttm_get_pages(struct list_head *pages, int flags, /* clear the pages coming from the pool if requested */ if (flags & TTM_PAGE_FLAG_ZERO_ALLOC) { list_for_each_entry(p, pages, lru) { - clear_page(page_address(p)); + if (PageHighMem(p)) + clear_highpage(p); + else + clear_page(page_address(p)); } } -- 1.7.7.6 -- From: Jonathan Morton jonathan.morton@movial.com