From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 90E233E559B; Tue, 7 Jul 2026 10:32:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783420322; cv=none; b=MNuMzYjGAvWVuZe195QtdDKGhFlW5o40p/9REoNT+mCM3FBjpEsuBsr4/LRqMfoUDtZRtR1guUid0FQtnxgwOmVrkwLYAll9khTSfq9jRgc4NphyRfaFN9Bm6i3Rds0io4MOmi//9Qr6qfUXLf4FBbQCN9X4MEbqLdH7X1eTImk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783420322; c=relaxed/simple; bh=pDxLEo/cl9IYFDktw/cfvgT+KDM5jg2wTfNcAyCdpAE=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=VWtjFSSWujuCwqtV1RcZB6wfOCRRi2BaRwdXq2Mlk+U7Q/4chEoh+nrqXjoT4O2gvZpKbDM8/8CpoE7BCk94YdTxU88PTRW0U6DCSyUrMfSPn3pFBEHQ3L0elE6HhBBuIhIZBuCcQUKHOraOSp1R+oLFJ5asgtWky+kPmhh/wTc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=CJQD7ZPp; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="CJQD7ZPp" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E76161F000E9; Tue, 7 Jul 2026 10:31:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1783420321; bh=soT56A/TsitxOPYJdfdItvncnq3Epp2rkiDUFibzwAc=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=CJQD7ZPpnY0LATwFP4HY6e99mGG6GCfwtV8prggnPIqZJoBT7sw1qkGBcMUymGabb thMKdB37j3Mngsn9NR0xZM3ngVTkWAKFGJ1phdZyrmdRqTmT//SItbTSX5gLMuvCGh h03dHdDBVKfa160LAt0yaBWio5lu77qjq0yudAYfiJObv5RjqQLRDbmptoyC6hGNHW E8y81BbE7fqCE9Ns7/a0r4BVgl44yGmApnpjPyV6g+rojpwE7+I26L2qbh+RXETO8y +yjDFpLtM0uRECmpnCPEvJUaccNc37yoAjGG17lTCIWiiaHTnl5i2XvNsouOomVvyo X9ITIQzR+3YOQ== Date: Tue, 7 Jul 2026 11:31:37 +0100 From: Lorenzo Stoakes To: Pedro Falcato Cc: Andrew Morton , Russell King , Dinh Nguyen , Simon Schuster , "James E . J . Bottomley" , Helge Deller , Jarkko Sakkinen , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Ian Abbott , H Hartley Sweeten , Lucas Stach , David Airlie , Simona Vetter , Patrik Jakobsson , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Rob Clark , Dmitry Baryshkov , Tomi Valkeinen , Thierry Reding , Mikko Perttunen , Jonathan Hunter , Christian Koenig , Huang Rui , Ankit Agrawal , Alex Williamson , Alexander Viro , Christian Brauner , Dan Williams , Muchun Song , Oscar Salvador , David Hildenbrand , Suren Baghdasaryan , "Liam R . Howlett" , Matthew Wilcox , Marek Szyprowski , Peter Zijlstra , Arnaldo Carvalho de Melo , Namhyung Kim , Masami Hiramatsu , Oleg Nesterov , Steven Rostedt , SeongJae Park , Miaohe Lin , Hugh Dickins , Mike Rapoport , Kees Cook , Paolo Bonzini , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-parisc@vger.kernel.org, linux-sgx@vger.kernel.org, etnaviv@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, linux-tegra@vger.kernel.org, kvm@vger.kernel.org, linux-fsdevel@vger.kernel.org, nvdimm@lists.linux.dev, linux-mm@kvack.org, iommu@lists.linux.dev, linux-perf-users@vger.kernel.org, linux-trace-kernel@vger.kernel.org, kasan-dev@googlegroups.com, damon@lists.linux.dev, Rik van Riel , Harry Yoo , Jann Horn Subject: Re: [PATCH 22/30] mm/vma: move __install_special_mapping() to vma.c Message-ID: References: Precedence: bulk X-Mailing-List: linux-trace-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: On Thu, Jul 02, 2026 at 12:22:56PM +0100, Pedro Falcato wrote: > On Mon, Jun 29, 2026 at 01:23:33PM +0100, Lorenzo Stoakes wrote: > > This function is operating on VMAs and rightly belongs in vma.c, where it > > can be subject to VMA userland testing and allows us to isolate it from the > > rest of mm. > > > > The _install_special_mapping() function will remain in mmap.c as a wrapper, > > since this is used by architecture-specific code. > > > > Doing so allows us to isolate more functions in vma.c for the same reasons. > > > > This forms part of work to allow for tracking MAP_PRIVATE file-backed > > mappings by their anonymous virtual page offset, as doing so allows us to > > isolate and keep code that interacts with this together. > > > > No functional change intended. > > > > Signed-off-by: Lorenzo Stoakes > > --- > > mm/mmap.c | 38 -------------------------------------- > > mm/vma.c | 38 ++++++++++++++++++++++++++++++++++++++ > > mm/vma.h | 5 +++++ > > 3 files changed, 43 insertions(+), 38 deletions(-) > > > > diff --git a/mm/mmap.c b/mm/mmap.c > > index 2d09a57e3620..46174e706bbe 100644 > > --- a/mm/mmap.c > > +++ b/mm/mmap.c > > @@ -1447,44 +1447,6 @@ static vm_fault_t special_mapping_fault(struct vm_fault *vmf) > > return VM_FAULT_SIGBUS; > > } > > > > -static struct vm_area_struct *__install_special_mapping( > > - struct mm_struct *mm, > > - unsigned long addr, unsigned long len, > > - vm_flags_t vm_flags, void *priv, > > - const struct vm_operations_struct *ops) > > -{ > > - int ret; > > - struct vm_area_struct *vma; > > - > > - vma = vm_area_alloc(mm); > > - if (unlikely(vma == NULL)) > > - return ERR_PTR(-ENOMEM); > > - > > - vma_set_range(vma, addr, addr + len, 0); > > - vm_flags |= mm->def_flags | VM_DONTEXPAND; > > - if (pgtable_supports_soft_dirty()) > > - vm_flags |= VM_SOFTDIRTY; > > - vm_flags_init(vma, vm_flags & ~VM_LOCKED_MASK); > > - vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); > > - > > - vma->vm_ops = ops; > > - vma->vm_private_data = priv; > > - > > - ret = insert_vm_struct(mm, vma); > > - if (ret) > > - goto out; > > - > > - vm_stat_account(mm, vma->vm_flags, len >> PAGE_SHIFT); > > - > > - perf_event_mmap(vma); > > - > > - return vma; > > - > > -out: > > - vm_area_free(vma); > > - return ERR_PTR(ret); > > -} > > - > > bool vma_is_special_mapping(const struct vm_area_struct *vma, > > const struct vm_special_mapping *sm) > > { > > diff --git a/mm/vma.c b/mm/vma.c > > index cb7222e20c93..f4de706a2728 100644 > > --- a/mm/vma.c > > +++ b/mm/vma.c > > @@ -3399,3 +3399,41 @@ __weak unsigned long vma_mmu_pagesize(struct vm_area_struct *vma) > > { > > return vma_kernel_pagesize(vma); > > } > > + > > +struct vm_area_struct *__install_special_mapping( > > + struct mm_struct *mm, > > + unsigned long addr, unsigned long len, > > + vm_flags_t vm_flags, void *priv, > > + const struct vm_operations_struct *ops) > > +{ > > + int ret; > > + struct vm_area_struct *vma; > > + > > + vma = vm_area_alloc(mm); > > + if (unlikely(vma == NULL)) > > + return ERR_PTR(-ENOMEM); > > + > > + vma_set_range(vma, addr, addr + len, 0); > > + vm_flags |= mm->def_flags | VM_DONTEXPAND; > > + if (pgtable_supports_soft_dirty()) > > + vm_flags |= VM_SOFTDIRTY; > > + vm_flags_init(vma, vm_flags & ~VM_LOCKED_MASK); > > + vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); > > + > > + vma->vm_ops = ops; > > + vma->vm_private_data = priv; > > + > > + ret = insert_vm_struct(mm, vma); > > + if (ret) > > + goto out; > > + > > + vm_stat_account(mm, vma->vm_flags, len >> PAGE_SHIFT); > > + > > + perf_event_mmap(vma); > > + > > + return vma; > > + > > +out: > > + vm_area_free(vma); > > + return ERR_PTR(ret); > > +} > > diff --git a/mm/vma.h b/mm/vma.h > > index 47fe35e5307e..14f026bf3be4 100644 > > --- a/mm/vma.h > > +++ b/mm/vma.h > > @@ -775,4 +775,9 @@ static inline bool map_deny_write_exec(const vma_flags_t *old, > > } > > #endif > > > > +struct vm_area_struct *__install_special_mapping(struct mm_struct *mm, > > + unsigned long addr, unsigned long len, > > + vm_flags_t vm_flags, void *priv, > > + const struct vm_operations_struct *ops); > > + > > #endif /* __MM_VMA_H */ > > I'm really annoyed that _install_special_mapping has a leading underscore. > That's it. Yeah it's horrible :) > > Reviewed-by: Pedro Falcato Thanks! > > -- > Pedro Cheers, Lorenzo