From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.9 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A76FFC2BA1B for ; Wed, 8 Apr 2020 15:59:33 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 6D4ED2082F for ; Wed, 8 Apr 2020 15:59:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="MtsDy8aG" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6D4ED2082F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 1DF658E000D; Wed, 8 Apr 2020 11:59:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 18F078E0006; Wed, 8 Apr 2020 11:59:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 07E268E000D; Wed, 8 Apr 2020 11:59:33 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0104.hostedemail.com [216.40.44.104]) by kanga.kvack.org (Postfix) with ESMTP id E35D38E0006 for ; Wed, 8 Apr 2020 11:59:32 -0400 (EDT) Received: from smtpin27.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id AB44980134C7 for ; Wed, 8 Apr 2020 15:59:32 +0000 (UTC) X-FDA: 76685147784.27.quill99_53464275dcc11 X-HE-Tag: quill99_53464275dcc11 X-Filterd-Recvd-Size: 4828 Received: from us-smtp-delivery-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) by imf19.hostedemail.com (Postfix) with ESMTP for ; Wed, 8 Apr 2020 15:59:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1586361571; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LQj8SJxnoT187WkU+lF/9Mo97AuAHOM+ES8lWDY6vvM=; b=MtsDy8aGM8tFDx62Ha/TLfmbMXIyzzGccpUrB/6niLn80dT4Y5Ic6KS5UUkd4dA5E5Tdwv dElP/x4kG5w+Cjcd8jxiID+up6P8DvXWGIICqGXafTuOcEAT4dgphYkBGUSVYcVJdCcV9O lCY+LEh8OwgzYjPIzeuvN24VcC8IOnI= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-385-tEU2C6lsOwe5cpHpkBif5A-1; Wed, 08 Apr 2020 11:59:30 -0400 X-MC-Unique: tEU2C6lsOwe5cpHpkBif5A-1 Received: by mail-wm1-f69.google.com with SMTP id a4so31367wmb.3 for ; Wed, 08 Apr 2020 08:59:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=Cv3Uc9k7RiYBuNJnamJbsFgYPRzsKo70MnUziLuuZdQ=; b=Va7m9BhEDA0LE57FHKfhYH7+v86tG1bsi213oWX/1+gAbl9RkZuW8eynRt9WGngGrj W8t4FjlSFWcP5T61hC37+c4lPrVQaDt16F6qzrkWCfkp/yTKfrwOoHpGurQVj2rPVEU1 a6CmR9qc039DtH5hCMH81LElkBhv6sEvUYS/qTwsyMWzLCBK2WQCJWxFZTZTs8olkTYj oC1um7K35R1m4KjxnqIvK5ZT1IRMFRQDstPW6Atf+Mc1cPtnqoV38/kib+txcSua80kw PhKiqoRRLUB7KrNueKwkZB7wNaTLOAgKRgan53QZ/J9x4lgLBYyDagMl7qRhyIrpElFR dNOQ== X-Gm-Message-State: AGi0PubQRAFMs+jTPgZ1MK97imOuOW0lYGKn1eoUZSXat7/46LuBA247 9+wpWP8s7N/zqk3+b0pfY36tGa8SdVBCYzXZxUao1iR5FvgLxb36vQqmJeiJAu+JYajAQLMIWzM J/d9vUFdCSkQ= X-Received: by 2002:adf:e3c9:: with SMTP id k9mr8478740wrm.33.1586361568686; Wed, 08 Apr 2020 08:59:28 -0700 (PDT) X-Google-Smtp-Source: APiQypJCu9BKLGk84AVscL0fKdbMzfDwWwkDvUB3DvqVVHDfVGxmDXVIvCJNVm8g5nLEPbtDXIKktQ== X-Received: by 2002:adf:e3c9:: with SMTP id k9mr8478726wrm.33.1586361568473; Wed, 08 Apr 2020 08:59:28 -0700 (PDT) Received: from xz-x1.redhat.com ([2607:9880:19c0:32::3]) by smtp.gmail.com with ESMTPSA id p5sm38401663wrg.49.2020.04.08.08.59.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Apr 2020 08:59:27 -0700 (PDT) From: Peter Xu To: linux-mm@kvack.org, Linus Torvalds , linux-kernel@vger.kernel.org Cc: Andrew Morton , peterx@redhat.com, Hillf Danton , Thomas Gleixner , Peter Zijlstra , syzbot+3be1a33f04dc782e9fd5@syzkaller.appspotmail.com, Michal Hocko Subject: [PATCH] mm/gup: Let __get_user_pages_locked() return -EINTR for fatal signal Date: Wed, 8 Apr 2020 11:59:24 -0400 Message-Id: <20200408155924.107722-1-peterx@redhat.com> X-Mailer: git-send-email 2.24.1 MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: From: Hillf Danton __get_user_pages_locked() will return 0 instead of -EINTR after commit 4426e945df588 which added extra code to allow gup detect fatal signal faster. Restore that behavior. Cc: Linus Torvalds Cc: Andrew Morton Cc: Thomas Gleixner Cc: Peter Zijlstra Fixes: 4426e945df58 ("mm/gup: allow VM_FAULT_RETRY for multiple times") Reported-by: syzbot+3be1a33f04dc782e9fd5@syzkaller.appspotmail.com Signed-off-by: Hillf Danton Acked-by: Michal Hocko Signed-off-by: Peter Xu --- PS. Patch verified with syzbot. Signed-off-by: Peter Xu --- mm/gup.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mm/gup.c b/mm/gup.c index afce0bc47e70..6076df8e04a4 100644 --- a/mm/gup.c +++ b/mm/gup.c @@ -1326,8 +1326,11 @@ static __always_inline long __get_user_pages_locked(= struct task_struct *tsk, =09=09 * start trying again otherwise it can loop forever. =09=09 */ =20 -=09=09if (fatal_signal_pending(current)) +=09=09if (fatal_signal_pending(current)) { +=09=09=09if (!pages_done) +=09=09=09=09pages_done =3D -EINTR; =09=09=09break; +=09=09} =20 =09=09ret =3D down_read_killable(&mm->mmap_sem); =09=09if (ret) { --=20 2.24.1