From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753537AbZFYSPu (ORCPT ); Thu, 25 Jun 2009 14:15:50 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752724AbZFYSPm (ORCPT ); Thu, 25 Jun 2009 14:15:42 -0400 Received: from www.tglx.de ([62.245.132.106]:60227 "EHLO www.tglx.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751304AbZFYSPl (ORCPT ); Thu, 25 Jun 2009 14:15:41 -0400 Date: Thu, 25 Jun 2009 20:15:14 +0200 (CEST) From: Thomas Gleixner To: Ingo Molnar cc: "Zhang, Yanmin" , Linus Torvalds , LKML , Peter Zijlstra , Darren Hart Subject: [GIT pull] final futex fixes for 2.6.31 In-Reply-To: <20090625100413.GD29980@elte.hu> Message-ID: References: <1245897826.2560.421.camel@ymzhang> <20090625100413.GD29980@elte.hu> User-Agent: Alpine 2.00 (LFD 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Linus, I'm truly embarrassed to ask you to pull the latest futexes-for-linus git tree from: git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git futexes-for-linus I did not just copy your suggestion blindly, I even wondered and looked up the prototype in mm.h which has the 4th argument "int len" and said to myself "hey, Linus is right as usual" while in reality "len" is number of pages. As I'm running out of brown paperbags I'm declaring all futex bugs fixed by definition. Futex bugs which will be discovered from now on are going to be automatically converted to documented features. Thanks, tglx ------------------> Thomas Gleixner (1): futex: request only one page from get_user_pages() kernel/futex.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/kernel/futex.c b/kernel/futex.c index 1c33711..794c862 100644 --- a/kernel/futex.c +++ b/kernel/futex.c @@ -299,7 +299,7 @@ void put_futex_key(int fshared, union futex_key *key) static int fault_in_user_writeable(u32 __user *uaddr) { int ret = get_user_pages(current, current->mm, (unsigned long)uaddr, - sizeof(*uaddr), 1, 0, NULL, NULL); + 1, 1, 0, NULL, NULL); return ret < 0 ? ret : 0; }