Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S937902AbXFHHR3 (ORCPT ); Fri, 8 Jun 2007 03:17:29 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S936791AbXFHHQz (ORCPT ); Fri, 8 Jun 2007 03:16:55 -0400 Received: from 216-99-217-87.dsl.aracnet.com ([216.99.217.87]:33059 "EHLO sous-sol.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S936734AbXFHHQy (ORCPT ); Fri, 8 Jun 2007 03:16:54 -0400 Message-Id: <20070608071532.588665000@sous-sol.org> References: <20070608071511.159309000@sous-sol.org> User-Agent: quilt/0.46-1 Date: Fri, 08 Jun 2007 00:15:14 -0700 From: Chris Wright To: linux-kernel@vger.kernel.org, stable@kernel.org Cc: Justin Forbes , Zwane Mwaikambo , "Theodore Ts'o" , Randy Dunlap , Dave Jones , Chuck Wolber , Chris Wedgwood , Michael Krufky , Chuck Ebbert , Domenico Andreoli , torvalds@linux-foundation.org, akpm@linux-foundation.org, alan@lxorguk.ukuu.org.uk, Andi Kleen , Greg Kroah-Hartman Subject: [patch 03/32] x86-64: Always flush all pages in change_page_attr Content-Disposition: inline; filename=x86-64-always-flush-all-pages-in-change_page_attr.patch Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1288 Lines: 43 -stable review patch. If anyone has any objections, please let us know. --------------------- From: Andi Kleen change_page_attr on x86-64 only flushed the TLB for pages that got reverted. That's not correct: it has to be flushed in all cases. This bug was added in some earlier changes. Just flush all pages for now. This could be done more efficiently, but for this late in the release this seem to be the best fix. Pointed out by Jan Beulich Signed-off-by: Andi Kleen Signed-off-by: Chris Wright Signed-off-by: Greg Kroah-Hartman --- arch/x86_64/mm/pageattr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- linux-2.6.20.13.orig/arch/x86_64/mm/pageattr.c +++ linux-2.6.20.13/arch/x86_64/mm/pageattr.c @@ -81,8 +81,8 @@ static void flush_kernel_map(void *arg) void *adr = page_address(pg); if (cpu_has_clflush) cache_flush_page(adr); - __flush_tlb_one(adr); } + __flush_tlb_all(); } static inline void flush_map(struct list_head *l) -- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/