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 407EAC47DDF for ; Thu, 25 Jan 2024 03:49:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BAE0C6B0082; Wed, 24 Jan 2024 22:49:50 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B370B6B0083; Wed, 24 Jan 2024 22:49:50 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9D76A6B0085; Wed, 24 Jan 2024 22:49:50 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 862F96B0082 for ; Wed, 24 Jan 2024 22:49:50 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 090EFC0BB3 for ; Thu, 25 Jan 2024 03:49:50 +0000 (UTC) X-FDA: 81716454540.22.01D1907 Received: from out-175.mta1.migadu.com (out-175.mta1.migadu.com [95.215.58.175]) by imf29.hostedemail.com (Postfix) with ESMTP id 51853120003 for ; Thu, 25 Jan 2024 03:49:48 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b="p8fd/qFX"; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf29.hostedemail.com: domain of yajun.deng@linux.dev designates 95.215.58.175 as permitted sender) smtp.mailfrom=yajun.deng@linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1706154588; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=Ts12caryezrugH79moklhax9deIOA6cUraDxKWjHyX4=; b=dbAwWo6gi0Nf8FnICwoTIwvM+leyvHdPSPjoGMrK6nU5CGFX+55EBf07s2vGphyNlb/zwg JasG6JRcrSQ0j4LNDQ8Je6br8sWle4WY2xUEs78WKn7G9epWktMrRUhbdRhztZVHTwIvuf UDd8LcIhhPALkPl1LaGuyPBNIGh3TSY= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b="p8fd/qFX"; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf29.hostedemail.com: domain of yajun.deng@linux.dev designates 95.215.58.175 as permitted sender) smtp.mailfrom=yajun.deng@linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1706154588; a=rsa-sha256; cv=none; b=yXA8Q5BID1GrrOUJNavFmD8zqd+sPAOL9L16V0eBzWcQ2JdZNoRZOI9BMpxm78MDr381zZ KrkZXzEmIgkDbniXE6aD43Ov2wnh3LatYAoabrUImnyYWcRHr6Xl9S3x9r/KAJd+y423xz XItTEinHHymdbMlTTIVo7K2s09XiCeY= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1706154586; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Ts12caryezrugH79moklhax9deIOA6cUraDxKWjHyX4=; b=p8fd/qFXbNb5rBgoPLFoGR6NCbbshJlD0+cYlLoGs8vIHLRmyWEM85qkUf/nFenBz431YK UKhMzanl0wWopcVuoGaImlIUche5F8QlbRuSDEYvXQbSXp2FohGUwTlbgDXqyYHP61M8Sg S72oK8dNwlb+edx/SDwQbO5p9YNepik= From: Yajun Deng To: akpm@linux-foundation.org Cc: Liam.Howlett@Oracle.com, lstoakes@gmail.com, viro@zeniv.linux.org.uk, brauner@kernel.org, vbabka@suse.cz, willy@infradead.org, surenb@google.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Yajun Deng Subject: [PATCH v2 1/2] mm/mmap: pass vma to vma_merge() Date: Thu, 25 Jan 2024 11:49:21 +0800 Message-Id: <20240125034922.1004671-2-yajun.deng@linux.dev> In-Reply-To: <20240125034922.1004671-1-yajun.deng@linux.dev> References: <20240125034922.1004671-1-yajun.deng@linux.dev> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Migadu-Flow: FLOW_OUT X-Rspam-User: X-Stat-Signature: m3ykkzg1sysoo8ctt984m7o6ikfkggwk X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 51853120003 X-HE-Tag: 1706154588-414560 X-HE-Meta: U2FsdGVkX19zo3PTesx62b2l1x0iVtbl00Kgh0apcvbSSuBUsY17NcYv0bMX91Ss5xR6JWvk21zTPEl19RWLrLRxPfzEU9YzfLz/La0H0+U+KST+CsE27BVsqGn9Wyb6nrdGGp6z9vi2kFbjPMXjJWB6ElwbTBGT6FdQ4VwkhVGXT+lKJ+lLfFUlTFOvMHI7By4pV8r2ZYa/zW5whRQY6tG/v0zDwyVtxnb+7tSpx5Ejqw/W393yAUM/HK4BbHkjr9V5AZF9R7BNVIFHfQPTBwUY7oy2GWtJBLOr6r+nUuPVy85jlXzL6gVilrT6TirTryZDcwZYA+9J5vydJ+rDvjj5+rCa8rKib5qRm2lgumLWjcqgDIFFRcbyxkaoTFKxMfCO1sEYHoT+//xACGYL4KOzGjFLVIEJNz/UAaLp/vG2XALS8vAWP3KZYH3kNB+ZDaI1ueDp4nsMiuIT+KpC6kycrM3zUKUOZHPfZBBiK5kaFLY2J4TtepEGlamzuDXPjRjCdb6rxV4pgd15KvDSOod9VAzI7Le7TNpZq39jFesdUZ1jJtQoD/mCs74CgxukAiFb30GKxO+tkrBLronBStWnjS+AkwtdFckYUopUK5ARgrjPTQtLSlANy98BgSa5KDzzazswUPFt1+EdmbE8l/CaZvrjM259MXXzOE1NRsFwu5Mi9tuzzI5k1LbornPuzfTJ7tjWZAt/QKEKDGpl3bxvB+rD19Ri7tzkQoSFfp/2NoSBxLlHdol8NiucZfC1oLQZyq89lpCpjZ/bwaYDE5q2VsI84kHNGJ6SrX1YcRCe/hc/0yoh3GWKeAzSWAnMwptgnUqJOnkJxrX2+UWpvyB+nSCtuIncew0Ta/RIrwgDTy7eQuwjQLbJsyCgRuZLw9pb8s1sN4wFNDKnqs3T2LlcRZ876s6JX+850YGq0mabLkvCbBhMfKqoduH2W2NDtu01Fr9vUMC/Dbs7r8h faCejAkD 7YrcslA33KcRSXxKXU8YM9cZsUyBJG9qtx8cc/0elhzDcED2Er9ymRavCDlj//Bu+EQm1VlzOKBT2K8NRmIacYFRPe80OG+yTICEDCUyu2o8RS1UJnLcpICDSroNLfmOQ7ngd 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: These vma_merge() callers will pass mm, anon_vma and file, they all from the same vma. There is no need to pass three parameters at the same time. Pass vma instead of mm, anon_vma and file to vma_merge(), so that it can save two parameters. Signed-off-by: Yajun Deng --- mm/mmap.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 49d25172eac8..f19bc53bc08e 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -860,13 +860,15 @@ can_vma_merge_after(struct vm_area_struct *vma, unsigned long vm_flags, * area is returned, or the function will return NULL */ static struct vm_area_struct -*vma_merge(struct vma_iterator *vmi, struct mm_struct *mm, - struct vm_area_struct *prev, unsigned long addr, unsigned long end, - unsigned long vm_flags, struct anon_vma *anon_vma, struct file *file, - pgoff_t pgoff, struct mempolicy *policy, +*vma_merge(struct vma_iterator *vmi, struct vm_area_struct *prev, + struct vm_area_struct *src, unsigned long addr, unsigned long end, + unsigned long vm_flags, pgoff_t pgoff, struct mempolicy *policy, struct vm_userfaultfd_ctx vm_userfaultfd_ctx, struct anon_vma_name *anon_name) { + struct mm_struct *mm = src->vm_mm; + struct anon_vma *anon_vma = src->anon_vma; + struct file *file = src->vm_file; struct vm_area_struct *curr, *next, *res; struct vm_area_struct *vma, *adjust, *remove, *remove2; struct vm_area_struct *anon_dup = NULL; @@ -2424,9 +2426,8 @@ struct vm_area_struct *vma_modify(struct vma_iterator *vmi, pgoff_t pgoff = vma->vm_pgoff + ((start - vma->vm_start) >> PAGE_SHIFT); struct vm_area_struct *merged; - merged = vma_merge(vmi, vma->vm_mm, prev, start, end, vm_flags, - vma->anon_vma, vma->vm_file, pgoff, policy, - uffd_ctx, anon_name); + merged = vma_merge(vmi, prev, vma, start, end, vm_flags, + pgoff, policy, uffd_ctx, anon_name); if (merged) return merged; @@ -2456,9 +2457,8 @@ static struct vm_area_struct struct vm_area_struct *vma, unsigned long start, unsigned long end, pgoff_t pgoff) { - return vma_merge(vmi, vma->vm_mm, prev, start, end, vma->vm_flags, - vma->anon_vma, vma->vm_file, pgoff, vma_policy(vma), - vma->vm_userfaultfd_ctx, anon_vma_name(vma)); + return vma_merge(vmi, prev, vma, start, end, vma->vm_flags, pgoff, + vma_policy(vma), vma->vm_userfaultfd_ctx, anon_vma_name(vma)); } /* @@ -2472,10 +2472,9 @@ struct vm_area_struct *vma_merge_extend(struct vma_iterator *vmi, pgoff_t pgoff = vma->vm_pgoff + vma_pages(vma); /* vma is specified as prev, so case 1 or 2 will apply. */ - return vma_merge(vmi, vma->vm_mm, vma, vma->vm_end, vma->vm_end + delta, - vma->vm_flags, vma->anon_vma, vma->vm_file, pgoff, - vma_policy(vma), vma->vm_userfaultfd_ctx, - anon_vma_name(vma)); + return vma_merge(vmi, vma, vma, vma->vm_end, vma->vm_end + delta, + vma->vm_flags, pgoff, vma_policy(vma), + vma->vm_userfaultfd_ctx, anon_vma_name(vma)); } /* -- 2.25.1