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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 760D4C04A6A for ; Wed, 26 Jul 2023 20:37:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 84EAC6B0071; Wed, 26 Jul 2023 16:37:29 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7FD676B0072; Wed, 26 Jul 2023 16:37:29 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6C5AE8D0001; Wed, 26 Jul 2023 16:37:29 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 5D4FA6B0071 for ; Wed, 26 Jul 2023 16:37:29 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 29E131A0281 for ; Wed, 26 Jul 2023 20:37:29 +0000 (UTC) X-FDA: 81054923418.19.5A69C76 Received: from mail-lj1-f179.google.com (mail-lj1-f179.google.com [209.85.208.179]) by imf30.hostedemail.com (Postfix) with ESMTP id 2941880020 for ; Wed, 26 Jul 2023 20:37:25 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=WBqtUarS; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf30.hostedemail.com: domain of smfrench@gmail.com designates 209.85.208.179 as permitted sender) smtp.mailfrom=smfrench@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1690403846; a=rsa-sha256; cv=none; b=M1l8EsQ6TvZBLsO9Um289YkTK6GNRrIe5qN888HWb0kxXwa/kJgHVkvHsNxNZyzVoBx8FB G1OqZdo4lkY/JRsKIVAOsY2KkaNXELKb2aX/qN1Xn9FksWfSNZkSsoTli/u/k6DDrY9EHJ QJtsTztmdHrAqKsPTf3ZI59BGnn9iU8= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=WBqtUarS; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf30.hostedemail.com: domain of smfrench@gmail.com designates 209.85.208.179 as permitted sender) smtp.mailfrom=smfrench@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1690403846; h=from:from:sender: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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=0lwD0XW5XNFFxl46sPGBkyRuR0c2+TXyAF+CGil8NRI=; b=r1f4DJVXtlHnMIjv6GAqEwEvzByRoVS2vrHiki9hnnV6FxlpsR4atGovDXuxkgPFpQ+Cz5 qcCOZHA9cG+Sc9wED68szYIIQ/KoMeMgNCZ7BiRT6HK6xhVy/EyG/uuX0HoyrSfZgeNaP5 kK82A8PmdcTtGKDDnrI/UynxdwRktMc= Received: by mail-lj1-f179.google.com with SMTP id 38308e7fff4ca-2b6fdaf6eefso2876191fa.0 for ; Wed, 26 Jul 2023 13:37:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1690403844; x=1691008644; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=0lwD0XW5XNFFxl46sPGBkyRuR0c2+TXyAF+CGil8NRI=; b=WBqtUarSorotOYNCJWkNReSAf19CXEDpnJUFPGIYyvbDGPlIhT1+vr65mlLeyLiFth GmCuACdJUKmp+aXMjQJaPSWfUyQzmfkXHGzk1XVUCq+ELSSJcCrHrh6NujIUxHhB+pw6 nrYhrtteDJSDiCNTnF299w8Z9/ab/lCPugj6dQRq2KaUlgPuKoQROhjcGJ8gNM13Bqq6 HXJ0oEeCTipLRP3OmuZJqKsKtZxr2J8MAGrlTNRyxx+TIF/yZUzVNn9X44NDKlLi5I1l PROjUW0OkV6M0DhbGgLHOtqYwRlhKYlkumzwjTCDK8bK1/gq+2Hvl44iae7i0AeSagm4 dsUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690403844; x=1691008644; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0lwD0XW5XNFFxl46sPGBkyRuR0c2+TXyAF+CGil8NRI=; b=QLn1g4GuUbBh9rLGmxGmp+M7raOFx686gOdbsMBys9t73J2DhjD03yClDWHmYXFEST PVUM0q2mf0Gaok5r50US7BaljnM7XmVl2Iyo5Qo/SkQoJVsLjumIDsIzZP0NEm1U/sCl lvrPmMwPGH7SbR9sanr9aJajrD+w0bRB/s8NUBOqCOX4Y4DQELrnPpWe4HLoceOWedHh q47MaN90XqO6AQRjI+KNIVamgSwfYuvFo0FGp4G5nHNThrPEY5fpwF56smxs+3HYNR34 HiUW14cLZQd1UfvxxO1tN9ahPT2z4dMvvNRwB3ySVbHxxzPNy63CwH8jVThk6bQxqSQI qvyg== X-Gm-Message-State: ABy/qLZCyobjjNUhZWZEQCfP6ZMl3qdvqRY8sBbjF5ciqHKVASlMg95c 64KquYyzCkMLSbYlcaAj/DgokZc1cLlS4zcrvWY= X-Google-Smtp-Source: APBJJlEBZjUVEWmH37ptqLNcNX8TxOf/NsFag9dWp+iIhP+gTcIv5RvFOUu1qEFSS9+AlBqg9RVIEdg2dS0OjOpUZFE= X-Received: by 2002:a2e:8490:0:b0:2b6:9afe:191c with SMTP id b16-20020a2e8490000000b002b69afe191cmr129103ljh.7.1690403843955; Wed, 26 Jul 2023 13:37:23 -0700 (PDT) MIME-Version: 1.0 References: <20571.1690369076@warthog.procyon.org.uk> <416eca24-6baf-69d9-21a2-c434a9744596@redhat.com> In-Reply-To: <416eca24-6baf-69d9-21a2-c434a9744596@redhat.com> From: Steve French Date: Wed, 26 Jul 2023 15:37:12 -0500 Message-ID: Subject: Re: [PATCH] crypto, cifs: Fix error handling in extract_iter_to_sg() To: David Hildenbrand Cc: David Howells , Herbert Xu , Steve French , akpm@linux-foundation.org, Sven Schnelle , "David S. Miller" , Jeff Layton , Shyam Prasad N , Rohith Surabattula , Jens Axboe , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthew Wilcox , linux-mm@kvack.org, linux-crypto@vger.kernel.org, linux-cachefs@redhat.com, linux-cifs@vger.kernel.org, linux-fsdevel@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 2941880020 X-Stat-Signature: zxcaoqs7t79ojrfp9w147bzfcz9qdpr7 X-HE-Tag: 1690403845-160611 X-HE-Meta: U2FsdGVkX1/qzOSQMiN7r4OQw/EPVGCMlpYHvQnPVB70+4uB8LpdEBMOOhEWD/hR31XDZETvY6HMfnF7y5bAoxgxdMdxnF1z1L4EW+oRKZdJevPaaVLF9tQrxgbPutETaUx0BOxcRaXiLEsrH9J6RFIXL8M8aeAS42NISCaOaidphVwKd5VjpU5K8agxANuaazNJfj8r9cO8Xid1cfup2HP1XJI3u7Sp5MjzbB71WjuMhNyHcVscPOIV1J7e39apbD5QRWn/PEwY1bnr8Ky4gJsdaEYO95lbG+x//6xFdPFVfMFGPMCpBULJ/eeW07xFTu9T5IvbKNU9jQn8OQyb0u1PVXwnp8urY0kJxV0qDEwRJWJVaFrTYb2f6/D5ev18F6bFDyaEqktKCEMVCvqyCmbQ7Pq8BZWVi3n9KMV0QgXrZ7JUK1LV1GBJ+eLJmt8kZEHYCBxTGuEkm9scmL9r1ROoJP/aSFA4xzCWUKvnJvWMxUxTjXJOaNjC/rPaFjz9L0HcxjMr8kp+tslPxcwm3JTBeS8xcj9yjRg/SaLhA99NR3/VzylX7xrnm2sKNbKub1cJRG7HYf8wCpXno2vlV/pWtAD4Vbcr1Fh1g0eoJDNMtO5bvZIqHXiH3i55xzNfNnV+Bzm7wNtIHQwYNGHQf8TauN8AE6Qjp2Za2vTl8dR6LWCawtn38XZhn1o6LE+lINCNbQBoMSBVT/22TItB3eZg+QyTdFbHu1oNyB8lgGiGutMIGmYA3dURex1gRzgRLa71/ryHQeW+nGLkfUfTrwWtmbv71UMwKiSN6ndQJ7vmifafL+7qcjiW2y3Z3JrHUqAaf5yOXNE82v6487aERFT6f7ZGmcoerLXCTnjfjqbfg5MBlZxfWYgu9CgTwEhinKkOebHXs3Dcz3NWcpRFSX3TxbjGRvZ4A+ei6DcBN4EXv8fyPqra1C3emZxjhuaXkFM/FQlnH0tqa/09rmm vamFx4z1 8X/5ijGYowQSGCBRJaJRzwHPcMGPDCUgQZSu4q7VzkguQXfaSOusAHcYskEdnIpj+nCgIy5U3QZVrPBrhHYFhSSZkpBjfwn2C6mpAeRwkTRruSJLfgAn/G07y8Q6fBVD+iD4geX2yEIH67BD+zGMRwd+s0GfQMHsLkWbXC2nLlyJYbe0oy9fPrUPrLOBz1p6SihcxEt9wxQhy21Z2q0ZH2BBlFtZ8wYIxo1J2mIgduSXxC8fX9Fy0cP3QcFs9LRRQkdu4w2q6YR1IpfWrZdnIJU7Do7whV7VJB0CGqoXOxK/qtttJQ1G2ThHGwHKpB00KHHY92yIjKhyItETJId+EI+HeBEsX5CU6HAEEOmVa8o/f6UFSeq1TLehcmQB0J/N+9FWr6cQ6YPUeqFESGarr7RnMiNpWDxwtSYTSzmuRRPRHkhpazL7aJWCN0kb4emwMRB5qwYfIakA3uCTFJpJiqz0TVoFO2QU8v3969AE8mQIhllqCgTS8mihUM1rcihPT6lFXtf10PkWZySl0MmAn0FSPdoQStekVrhVvv6ACbAV5giMsOtL0z/+IkvBPyhGbiRVwTgUyNertZb63zduppub8y+udHlaURhOsUtQnzmoTNtWFg58KczcdlzLAqQt30iSsXJ7STHvhWnDE/maRhBC5w2vQq0LwQeOQP1hcbDk/J6v0k9cFjasvoYpaQjvfXVwJ4UBcuhGYivC4iEXPAY2px77U/6s4bJt8+RquWNLLBGQm2JG+g79QApR5dDoSYyQw3vTj85mjGX7uLe8n9kMfRZ8cQCGR4cCx06qn2koSeNTb1U0OejDTTmqBQJzKjEcSbmhT0rurN7xlPz/aK0yyxGFWVaL9TgOjpjL6Lt4BAuN/ah1Sq8tPeM04ZrpOB4y56qlPJ/eWKdEMt5bpqmhFrbxZVGYX6VZ32NVCPUV4gL5N55LNpMxM9npbSM7Gji+NuLaALw3/Qibz0rqPioQwnF88 rMdsnPH5 CXyjCUu22j+WtwPfQlI/6lbCxyoJMWnBiaV2s9KEQhUNIG/rYLuMrhVlkJnlAFFDtk8PNEMHWnOeuQ9mKY9sYg== 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: Acked-off-by: Steve French On Wed, Jul 26, 2023 at 8:56=E2=80=AFAM David Hildenbrand wrote: > > On 26.07.23 12:57, David Howells wrote: > > > > Fix error handling in extract_iter_to_sg(). Pages need to be unpinned,= not > > put in extract_user_to_sg() when handling IOVEC/UBUF sources. > > > > The bug may result in a warning like the following: > > > > WARNING: CPU: 1 PID: 20384 at mm/gup.c:229 __lse_atomic_add arch/arm= 64/include/asm/atomic_lse.h:27 [inline] > > WARNING: CPU: 1 PID: 20384 at mm/gup.c:229 arch_atomic_add arch/arm6= 4/include/asm/atomic.h:28 [inline] > > WARNING: CPU: 1 PID: 20384 at mm/gup.c:229 raw_atomic_add include/li= nux/atomic/atomic-arch-fallback.h:537 [inline] > > WARNING: CPU: 1 PID: 20384 at mm/gup.c:229 atomic_add include/linux/= atomic/atomic-instrumented.h:105 [inline] > > WARNING: CPU: 1 PID: 20384 at mm/gup.c:229 try_grab_page+0x108/0x160= mm/gup.c:252 > > ... > > pc : try_grab_page+0x108/0x160 mm/gup.c:229 > > lr : follow_page_pte+0x174/0x3e4 mm/gup.c:651 > > ... > > Call trace: > > __lse_atomic_add arch/arm64/include/asm/atomic_lse.h:27 [inline] > > arch_atomic_add arch/arm64/include/asm/atomic.h:28 [inline] > > raw_atomic_add include/linux/atomic/atomic-arch-fallback.h:537 [inl= ine] > > atomic_add include/linux/atomic/atomic-instrumented.h:105 [inline] > > try_grab_page+0x108/0x160 mm/gup.c:252 > > follow_pmd_mask mm/gup.c:734 [inline] > > follow_pud_mask mm/gup.c:765 [inline] > > follow_p4d_mask mm/gup.c:782 [inline] > > follow_page_mask+0x12c/0x2e4 mm/gup.c:839 > > __get_user_pages+0x174/0x30c mm/gup.c:1217 > > __get_user_pages_locked mm/gup.c:1448 [inline] > > __gup_longterm_locked+0x94/0x8f4 mm/gup.c:2142 > > internal_get_user_pages_fast+0x970/0xb60 mm/gup.c:3140 > > pin_user_pages_fast+0x4c/0x60 mm/gup.c:3246 > > iov_iter_extract_user_pages lib/iov_iter.c:1768 [inline] > > iov_iter_extract_pages+0xc8/0x54c lib/iov_iter.c:1831 > > extract_user_to_sg lib/scatterlist.c:1123 [inline] > > extract_iter_to_sg lib/scatterlist.c:1349 [inline] > > extract_iter_to_sg+0x26c/0x6fc lib/scatterlist.c:1339 > > hash_sendmsg+0xc0/0x43c crypto/algif_hash.c:117 > > sock_sendmsg_nosec net/socket.c:725 [inline] > > sock_sendmsg+0x54/0x60 net/socket.c:748 > > ____sys_sendmsg+0x270/0x2ac net/socket.c:2494 > > ___sys_sendmsg+0x80/0xdc net/socket.c:2548 > > __sys_sendmsg+0x68/0xc4 net/socket.c:2577 > > __do_sys_sendmsg net/socket.c:2586 [inline] > > __se_sys_sendmsg net/socket.c:2584 [inline] > > __arm64_sys_sendmsg+0x24/0x30 net/socket.c:2584 > > __invoke_syscall arch/arm64/kernel/syscall.c:38 [inline] > > invoke_syscall+0x48/0x114 arch/arm64/kernel/syscall.c:52 > > el0_svc_common.constprop.0+0x44/0xe4 arch/arm64/kernel/syscall.c:14= 2 > > do_el0_svc+0x38/0xa4 arch/arm64/kernel/syscall.c:191 > > el0_svc+0x2c/0xb0 arch/arm64/kernel/entry-common.c:647 > > el0t_64_sync_handler+0xc0/0xc4 arch/arm64/kernel/entry-common.c:665 > > el0t_64_sync+0x19c/0x1a0 arch/arm64/kernel/entry.S:591 > > > > Fixes: 018584697533 ("netfs: Add a function to extract an iterator into= a scatterlist") > > Reported-by: syzbot+9b82859567f2e50c123e@syzkaller.appspotmail.com > > Link: https://lore.kernel.org/linux-mm/000000000000273d0105ff97bf56@goo= gle.com/ > > Signed-off-by: David Howells > > cc: Sven Schnelle > > cc: akpm@linux-foundation.org > > cc: Herbert Xu > > cc: "David S. Miller" > > cc: Jeff Layton > > cc: Steve French > > cc: Shyam Prasad N > > cc: Rohith Surabattula > > cc: Jens Axboe > > cc: Herbert Xu > > cc: "David S. Miller" > > cc: Eric Dumazet > > cc: Jakub Kicinski > > cc: Paolo Abeni > > cc: Matthew Wilcox > > cc: linux-mm@kvack.org > > cc: linux-crypto@vger.kernel.org > > cc: linux-cachefs@redhat.com > > cc: linux-cifs@vger.kernel.org > > cc: linux-fsdevel@vger.kernel.org > > cc: netdev@vger.kernel.org > > --- > > lib/scatterlist.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/lib/scatterlist.c b/lib/scatterlist.c > > index e86231a44c3d..c65566b4dc66 100644 > > --- a/lib/scatterlist.c > > +++ b/lib/scatterlist.c > > @@ -1148,7 +1148,7 @@ static ssize_t extract_user_to_sg(struct iov_iter= *iter, > > > > failed: > > while (sgtable->nents > sgtable->orig_nents) > > - put_page(sg_page(&sgtable->sgl[--sgtable->nents])); > > + unpin_user_page(sg_page(&sgtable->sgl[--sgtable->nents]))= ; > > return res; > > } > > > > > > Reviewed-by: David Hildenbrand > > -- > Cheers, > > David / dhildenb > --=20 Thanks, Steve