Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757502AbbKSAOr (ORCPT ); Wed, 18 Nov 2015 19:14:47 -0500 Received: from mga09.intel.com ([134.134.136.24]:41871 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757336AbbKSAOp (ORCPT ); Wed, 18 Nov 2015 19:14:45 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.20,315,1444719600"; d="scan'208";a="841920465" Date: Thu, 19 Nov 2015 02:14:40 +0200 From: "Kirill A. Shutemov" To: Dominik Dingel Cc: linux-s390@vger.kernel.org, linux-mm@kvack.org, Andrew Morton , "Kirill A. Shutemov" , Andrea Arcangeli , David Rientjes , Eric B Munson , Naoya Horiguchi , Mel Gorman , Martin Schwidefsky , Heiko Carstens , Christian Borntraeger , Paolo Bonzini , "Jason J. Herne" , linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/2] mm: fixup_userfault returns VM_FAULT_RETRY if asked Message-ID: <20151119001440.GA7206@black.fi.intel.com> References: <1447890598-56860-1-git-send-email-dingel@linux.vnet.ibm.com> <1447890598-56860-2-git-send-email-dingel@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1447890598-56860-2-git-send-email-dingel@linux.vnet.ibm.com> User-Agent: Mutt/1.5.23.1 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1142 Lines: 40 On Thu, Nov 19, 2015 at 12:49:57AM +0100, Dominik Dingel wrote: > When calling fixup_userfault with FAULT_FLAG_ALLOW_RETRY, fixup_userfault > didn't care about VM_FAULT_RETRY and returned 0. If the VM_FAULT_RETRY flag is > set we will return the complete result of handle_mm_fault. > > Signed-off-by: Dominik Dingel > --- > mm/gup.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/mm/gup.c b/mm/gup.c > index deafa2c..2af3b31 100644 > --- a/mm/gup.c > +++ b/mm/gup.c > @@ -609,6 +609,8 @@ int fixup_user_fault(struct task_struct *tsk, struct mm_struct *mm, > return -EFAULT; > BUG(); > } > + if (ret & VM_FAULT_RETRY) > + return ret; Nope. fixup_user_fault() return errno, not VM_FAULT_* mask. I guess it should be return -EBUSY; > if (tsk) { > if (ret & VM_FAULT_MAJOR) > tsk->maj_flt++; > -- > 2.3.9 > -- Kirill A. Shutemov -- 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/