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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 5694BC43602 for ; Tue, 7 Jul 2026 10:32:05 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 1A56210EC22; Tue, 7 Jul 2026 10:32:04 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.b="CJQD7ZPp"; dkim-atps=neutral Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2A19210EC55; Tue, 7 Jul 2026 10:32:02 +0000 (UTC) Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id 48D5C618A6; Tue, 7 Jul 2026 10:32:01 +0000 (UTC) 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: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" 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