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 CD7BBC3DA42 for ; Wed, 17 Jul 2024 05:03:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0E0066B0088; Wed, 17 Jul 2024 01:03:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 068C96B0089; Wed, 17 Jul 2024 01:03:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E71C16B008C; Wed, 17 Jul 2024 01:03:33 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id CA0A56B0088 for ; Wed, 17 Jul 2024 01:03:33 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 459C38082C for ; Wed, 17 Jul 2024 05:03:33 +0000 (UTC) X-FDA: 82348051506.20.9221862 Received: from mail-oo1-f45.google.com (mail-oo1-f45.google.com [209.85.161.45]) by imf26.hostedemail.com (Postfix) with ESMTP id 6508E140013 for ; Wed, 17 Jul 2024 05:03:31 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=Cf5Me+ll; spf=pass (imf26.hostedemail.com: domain of jeffxu@chromium.org designates 209.85.161.45 as permitted sender) smtp.mailfrom=jeffxu@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1721192572; 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=i3t0cpldr8avZY/NqlGsEsmnOCiLCe/YleshAynmYw0=; b=1sEX7+QfaypFAfqkCu1UnQInp1mHQpdnEIEQrHCeM/juvkYp92jcFzPhsSLjfDzMnNrJis kBjYQ3/A6KsEaWFyIuqahFHlylh6dxRLMseVZNS4HvGr29Rs0p4RfSpX4Y+/vTcKcAnrbZ 2+GG465A4PvSwTL9nJBn7Yp5fDSMOrc= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1721192572; a=rsa-sha256; cv=none; b=WUR6XMknWfcGm+1VdOFir1KHUTik5865/DBpHFrmopVUb06Oeebp2spZkijkrx7n45fqYw Gr49yEMLh+k+CTr00EpFlbnmWMXj5ZhX7dNDNM5qGGIgOrOxxShm+qCC/QVUSyO/K9zWBG 39zc88HO+PJNtxZje5vVeZdPD/gu4iw= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=Cf5Me+ll; spf=pass (imf26.hostedemail.com: domain of jeffxu@chromium.org designates 209.85.161.45 as permitted sender) smtp.mailfrom=jeffxu@chromium.org; dmarc=pass (policy=none) header.from=chromium.org Received: by mail-oo1-f45.google.com with SMTP id 006d021491bc7-5c9fea3b566so230710eaf.0 for ; Tue, 16 Jul 2024 22:03:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1721192610; x=1721797410; darn=kvack.org; 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=i3t0cpldr8avZY/NqlGsEsmnOCiLCe/YleshAynmYw0=; b=Cf5Me+ll+zGgmVDTJqYVl2oXQIRrh6FAKA/x6Jp3akl1EuzD+iCUDhw1KfOLwbvaxr DLLHIE1DRUraDwzWzWSQ9vpcJ+NejN4AXVYtqmDLS9OYO+Xrg1wD232ormgw6ZrGkFBO EyyJ6Dt22xZMiB7xe8qiKGosur3DRh2cjR2JQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721192610; x=1721797410; 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=i3t0cpldr8avZY/NqlGsEsmnOCiLCe/YleshAynmYw0=; b=sHoVBKCoC09RLTYGIJgXo63yVdiA55Rre3/26kWby21N8M07E+YDCWPSP5rBKyMR8i 3JhF6lYU/veMLd1aJSKpgMyRTbDnMBoIl4wLvngJOUC7e0+5VBBoLTVwsdqBG+NjoAKI AxYQaQjrcUVGgwvor42d2nUz2W7ceuuiN46GhbMc14sNIuvhbMuiDFlZAb22LfMHqOIr xvdOrpfQoBYPGVI4fMB/St//l25KJN+3876uR0D+IyZkEvHG32HpvW27kRR5Rhk/o99c 3nw/uE2JFRbKVxcln1Nt7S8T+tQFTfJ1I0oJ+mjPyMGvRULfXmPTry84ZHFlYawR8SKv 6ZLQ== X-Gm-Message-State: AOJu0YzP9aWi1DE+EkViFai7wwoD4bfwaFkZPOmj4WB1NrXBZ58fsy/K 14rbnfqDqIoJ2yIsx/EYeqDbFfXpp2LMWFa64auJvqywuLqG5PMjQDvjppzu/vKLmY/iZVqVY2c sWUBno/JYXdnjXmcUCOpoTSOQl9Zv8DOQjsvh X-Google-Smtp-Source: AGHT+IGIj+nvmd6+BGaHjWYUDOS/oSOs0/w40qyu6AVhGQgkRyzFVKXUiYa/4jBMWxcQAEUJb7E9Yp1BvaSO/or+gyo= X-Received: by 2002:a05:6871:9c15:b0:25e:b984:22e9 with SMTP id 586e51a60fabf-260bf33fe21mr1906964fac.5.1721192610224; Tue, 16 Jul 2024 22:03:30 -0700 (PDT) MIME-Version: 1.0 References: <20240710192250.4114783-1-Liam.Howlett@oracle.com> <20240710192250.4114783-19-Liam.Howlett@oracle.com> In-Reply-To: <20240710192250.4114783-19-Liam.Howlett@oracle.com> From: Jeff Xu Date: Tue, 16 Jul 2024 22:03:18 -0700 Message-ID: Subject: Re: [PATCH v4 18/21] mm/mmap: Move can_modify_mm() check down the stack To: "Liam R. Howlett" Cc: linux-mm@kvack.org, Andrew Morton , Suren Baghdasaryan , Vlastimil Babka , Lorenzo Stoakes , Matthew Wilcox , sidhartha.kumar@oracle.com, "Paul E . McKenney" , Bert Karwatzki , Jiri Olsa , linux-kernel@vger.kernel.org, Kees Cook Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 6508E140013 X-Stat-Signature: hjpohnzm8mt8bxejb8oop3ec8ofyk45x X-HE-Tag: 1721192611-91445 X-HE-Meta: U2FsdGVkX1/kRnT8w4/g5P0oOImn55nEemY3W2MRMRlGDEvzxMJmAEgxu4G523Stjp/IuvFWJgPbdahlGotAgKuKJ4thjVJsVuZKbpjkl66nakExYKgI+EE+4a8zQxjIDUQ5KZREGm2SuW50LXIEImOLmDKza6CHYiUk5sI33/CLk0MH+AwqsDypMkxvgkz/PuflnH9c/sVXabClsoajYWhlkSdxHt4Dq4Smw/KGnXgC7vr9xnLaeCblWzD9hXCkaj0r8BK0Dksnk5aFxJ6CxBfxxc9TLY1FJmp7oNmMZtTMaFyvDtyRw388KXJZc7oLqBs2AU1fmDlT4/6U8egmLmJx0YuQx3akNORWWoPNoV4oS2cChmcWVv86QZLO7hnhA9+zY3lPBVQAlbGD8F7kJHjtA+wBf2AJQthp7SjpljbbHG+yo5/Oy84tSVu5FHtoXqUA74h4DPbwKLc9dxi/adNSkg1ecnjKwGYEtLMrdyyoI3nByv18A62Tajv2yIuM+9xOxXJAOtkj3FKZxa247rOSdYqCPK2NFI59gOWjItPit/aboOyHyPAQnX+L37nhtWs5bd5FELc+m0XS4WkqmbVxJOx3LvKc/6GPgHGRwub6SqoYw+NDTEhy4+1xklv8hRZzTB8nMIb5c2nuGCWiHIjVmYk5usvD1YWjav+q+PyGfXl8bt5F8h20i7aSDFCWWkqWqLQL/HNNVvU2EMyXHQFyJajiUErFMXSnhAKHiGGZupXuzWGGNgbvA14sSnajKsfnxyzwOqJ2sW39cs4Exdn+AMB9a43xBkFj1WT46mr88Al+grnNn3dAt8H49nueM/VnOzfZzoEWEFAVwGvQP2TEm6V1Ls40qeNGy8ZU/zV5hu4eiO+zHd0hr//sgtAVJ8Yp1OdRPiyNkOvmzQwE7Jy9p85pZwHlkdL670lZwQMn/tC7Ersa3vmhtIPUhUTsWpCxnoQ/EWZmV590Qhr tVvmdApI ReLKn9UJfFMRgr3TeJ4P4pbAhoDMGa6nMkyTnD4+7qKj/R/yMOuNAiCC4FmKcYl176BYvZKSemMg/pVzqJF3KShxyjxXuMiaDTOqgFA92ZnHRtZhkpIhtqzixTKPDuBdekQ12YM60IGT6b+eYBsNAGCN6CczyWycI5x+KiUzXy6gorV9Xcid1AdIJyx++ossL519dCQYsayjDtgig52bUuSobprJfXYtvm32zbWwFICHIzO87pqUpF2uLUU8rN7mno/uLMboE3rC7WixPhuxGAQ2cOU1YYVQtSitFSOW7IWcUqI4= 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: List-Subscribe: List-Unsubscribe: Hi On Wed, Jul 10, 2024 at 12:23=E2=80=AFPM Liam R. Howlett wrote: > > From: "Liam R. Howlett" > > Without an arch_unmap() call anymore, Is there another patch that removes arch_unmap() ? Can you please post the link for the patch ? Thanks -Jeff > the check for mseal'ed vmas can be > moved lower as well. This has the benefit of only actually checking if > things are msealed when there is anything to check. That is, we know > there is at least one vma that is in the way and needs to be checked. > > Only call the can_modify_mm() in do_vmi_align_munmap() and the MAP_FIXED > case of mmap_region(). > > Signed-off-by: Liam R. Howlett > Cc: Jeff Xu > --- > mm/mmap.c | 24 ++++++++---------------- > 1 file changed, 8 insertions(+), 16 deletions(-) > > diff --git a/mm/mmap.c b/mm/mmap.c > index df565f51971d..c343366b3ad2 100644 > --- a/mm/mmap.c > +++ b/mm/mmap.c > @@ -2849,6 +2849,10 @@ do_vmi_align_munmap(struct vma_iterator *vmi, stru= ct vm_area_struct *vma, > struct vma_munmap_struct vms; > int error; > > + /* Prevent unmapping a sealed VMA. */ > + if (unlikely(!can_modify_mm(mm, start, end))) > + return -EPERM; > + > init_vma_munmap(&vms, vmi, vma, start, end, uf, unlock); > error =3D vms_gather_munmap_vmas(&vms, &mas_detach); > if (error) > @@ -2899,13 +2903,6 @@ int do_vmi_munmap(struct vma_iterator *vmi, struct= mm_struct *mm, > if (end =3D=3D start) > return -EINVAL; > > - /* > - * Prevent unmapping a sealed VMA. > - * can_modify_mm assumes we have acquired the lock on MM. > - */ > - if (unlikely(!can_modify_mm(mm, start, end))) > - return -EPERM; > - > /* Find the first overlapping VMA */ > vma =3D vma_find(vmi, end); > if (!vma) { > @@ -2963,13 +2960,15 @@ unsigned long mmap_region(struct file *file, unsi= gned long addr, > if (!may_expand_vm(mm, vm_flags, pglen - nr_pages)) > return -ENOMEM; > > - if (unlikely(!can_modify_mm(mm, addr, end))) > - return -EPERM; > > /* Find the first overlapping VMA */ > vma =3D vma_find(&vmi, end); > init_vma_munmap(&vms, &vmi, vma, addr, end, uf, /* unlock =3D */ = false); > if (vma) { > + /* Prevent unmapping a sealed VMA. */ > + if (unlikely(!can_modify_mm(mm, addr, end))) > + return -EPERM; > + > mt_init_flags(&mt_detach, vmi.mas.tree->ma_flags & MT_FLA= GS_LOCK_MASK); > mt_on_stack(mt_detach); > mas_init(&mas_detach, &mt_detach, /* addr =3D */ 0); > @@ -3341,13 +3340,6 @@ int do_vma_munmap(struct vma_iterator *vmi, struct= vm_area_struct *vma, > { > struct mm_struct *mm =3D vma->vm_mm; > > - /* > - * Prevent unmapping a sealed VMA. > - * can_modify_mm assumes we have acquired the lock on MM. > - */ > - if (unlikely(!can_modify_mm(mm, start, end))) > - return -EPERM; > - > return do_vmi_align_munmap(vmi, vma, mm, start, end, uf, unlock); > } > > -- > 2.43.0 >