From patchwork Thu Sep 1 17:34:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Suren Baghdasaryan X-Patchwork-Id: 12963042 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 257DDECAAD1 for ; Thu, 1 Sep 2022 18:09:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:From:Subject:Message-ID: References:Mime-Version:In-Reply-To:Date:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=NV/arcZXtYqcG9zB1qTbDwCef2oLRVc0gUn5h1JYhHY=; b=eNSRgLdTQG27guBs3Htrf9S8OY F8mqGYNKRLiyIjq0EpH1SGGKoxebEvMN0lcmGBkLlIUj9uASvLkp5bEh3rTjd+TYE/7PnKJ1o8qY7 S6Zy571a9nxfqRTGluEes8k3d8amO4ACFcQucRBv4X2fM5UwjOw19OvSAQFXUKAW09Uy16s0id1DC BGBlF/FB6SM7kzDeUzk2AJWTckeUr0ZsYD0jhh9y0GyqMAci9SNK8OCkqF3aYxBxDDU+1z3loXNgk kg+yfwxFFPAmevsl0T9Seu9qUcb2oaedWAzwfMKZxAG+LYHm/c7loT2FtHfNWqReNoI54pSnDBa2M CBShqcRQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oToc0-00DoS8-52; Thu, 01 Sep 2022 18:08:21 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oToXW-00Dm5L-NT for linux-arm-kernel@bombadil.infradead.org; Thu, 01 Sep 2022 18:03:42 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Type:Cc:To:From:Subject: Message-ID:References:Mime-Version:In-Reply-To:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=byYdzgQ2nb1BwMzAK8Db5EPtebwswE17va5vsTNHDvI=; b=ZMyHx8zbdoP8//i/FAEmPU+doR Tr/DMseEjJ2nCsweACVJBo/exy1i6qqZhqmdfmg/bDZdTxWcBbr5NtZXT91MjKVV/pSAAyAOmWqSy W7LUjfJxwwVXa7oLWjhnoI6rmnzrsfk17HFzKwvLgOkRzKDlUXyWzw6kTj1DjwsvxLgBA4qJjd36P LOBwqO3SBDe+REUILdkq2IrVC35A+DXiy2uCHIkA44uboi5cOUM9+adzRz2byqmC/cvl63bvSieSy /rXNWWoiPZRQkw3+/Lfql07u9ZJsfzBiB84+57R9a5j+7j1PhZx/FBPOnIl8iPqaxxqnrNq4b8/uI 1i3iwV7w==; Received: from mail-yw1-x1149.google.com ([2607:f8b0:4864:20::1149]) by desiato.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oTo6P-008RdZ-Qt for linux-arm-kernel@lists.infradead.org; Thu, 01 Sep 2022 17:35:43 +0000 Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-33dce8cae71so234413807b3.8 for ; Thu, 01 Sep 2022 10:35:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date; bh=byYdzgQ2nb1BwMzAK8Db5EPtebwswE17va5vsTNHDvI=; b=U5hxVmDFnvg3Zh8mYi2DwtWs5BxWMTUQESfFDYoN6r6izeiWA5yaRxl1nHFUTbwk// Dnd8HHqghiMd97Zw1zIzmeB4ars9SXmdp/qLpi9efptTbpKgnXouiU6jw117QN+WP9qs 3UWSwrzjzVFJ688YmwTVx+XNrjpewHxiYcGpgCH/HREdk2crWCVRYVVfKgVwMdBm3Bmp 0cmyfTq+1Is86HcJ8rQc8vT+aBrCdpHLLyCE4j/1ArHGf12SJ516YZIyRc8DbZTCjB20 ojn6KPPAcVM9EzDOR735/i5/Hcf8Q/BBi2k53VcG0tY24s/K8Lqz5/8Ca9tGedcRR97p PE0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date; bh=byYdzgQ2nb1BwMzAK8Db5EPtebwswE17va5vsTNHDvI=; b=UghLPfbO5Ki7K0StUQcCaNAaL4TZBITVFv3ELKXkHXX6WFrqyKX/lbTjmJhfs3QN7r sBEC0Eh6mkuTKCW31q5fBLzgxmSZ8iDUZ6xBldvEF1PadtYhTWJAVi3smWrJORa+oS+G A5OHOm4ENlmnGb29R/t+Sn+UNiL+Tc7JXG0ZBIvfrGGmM+UmcfMu5WU1+iLkdUr3/gaU b5+tHv8VZEC9dVsO5RVEwRSjnlHAb84Nco7tOHYcb0MNblgOpFzzgQd+r57nJONJEtZK zFVonZykikI5jNfh0Wyvf/8wx3A5jpKSxB16oRgFGSuQRMyRrNXCNOuDGifuzadcpIgc pCLA== X-Gm-Message-State: ACgBeo2FKWXc0FGK2rGrNWHhL6GwCEqJLRWtiATv2SpEIPuCq0cPNo8x kJGYg8BDi+xAJeoHQ8zF2cn6WXvyQBQ= X-Google-Smtp-Source: AA6agR7fnwkRjroGVHJxi1RhhEsQJMH0R75zEmK00qUWtCXpP69RbgB6GRXVWsVMb26fPpccLe4aPhca22w= X-Received: from surenb-desktop.mtv.corp.google.com ([2620:15c:211:200:1bfc:e7ee:6530:4449]) (user=surenb job=sendgmr) by 2002:a25:40c6:0:b0:67a:5c8a:21d2 with SMTP id n189-20020a2540c6000000b0067a5c8a21d2mr20567843yba.158.1662053739927; Thu, 01 Sep 2022 10:35:39 -0700 (PDT) Date: Thu, 1 Sep 2022 10:34:55 -0700 In-Reply-To: <20220901173516.702122-1-surenb@google.com> Mime-Version: 1.0 References: <20220901173516.702122-1-surenb@google.com> X-Mailer: git-send-email 2.37.2.789.g6183377224-goog Message-ID: <20220901173516.702122-8-surenb@google.com> Subject: [RFC PATCH RESEND 07/28] kernel/fork: mark VMAs as locked before copying pages during fork From: Suren Baghdasaryan To: akpm@linux-foundation.org Cc: michel@lespinasse.org, jglisse@google.com, mhocko@suse.com, vbabka@suse.cz, hannes@cmpxchg.org, mgorman@suse.de, dave@stgolabs.net, willy@infradead.org, liam.howlett@oracle.com, peterz@infradead.org, ldufour@linux.ibm.com, laurent.dufour@fr.ibm.com, paulmck@kernel.org, luto@kernel.org, songliubraving@fb.com, peterx@redhat.com, david@redhat.com, dhowells@redhat.com, hughd@google.com, bigeasy@linutronix.de, kent.overstreet@linux.dev, rientjes@google.com, axelrasmussen@google.com, joelaf@google.com, minchan@google.com, surenb@google.com, kernel-team@android.com, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, x86@kernel.org, linux-kernel@vger.kernel.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220901_183542_001229_07920C39 X-CRM114-Status: GOOD ( 11.49 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Protect VMAs from concurrent page fault handler while performing copy_page_range for VMAs having VM_WIPEONFORK flag set. Signed-off-by: Suren Baghdasaryan --- kernel/fork.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/fork.c b/kernel/fork.c index bfab31ecd11e..1872ad549fed 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -709,8 +709,10 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm, rb_parent = &tmp->vm_rb; mm->map_count++; - if (!(tmp->vm_flags & VM_WIPEONFORK)) + if (!(tmp->vm_flags & VM_WIPEONFORK)) { + vma_mark_locked(mpnt); retval = copy_page_range(tmp, mpnt); + } if (tmp->vm_ops && tmp->vm_ops->open) tmp->vm_ops->open(tmp);