From patchwork Fri Mar 27 22:50:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michel Lespinasse X-Patchwork-Id: 11463251 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 0065C913 for ; Fri, 27 Mar 2020 22:51:20 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id B83B12072F for ; Fri, 27 Mar 2020 22:51:19 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="k0FbyRqk" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B83B12072F Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=google.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id B4C1C6B006E; Fri, 27 Mar 2020 18:51:18 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id AB22A6B006C; Fri, 27 Mar 2020 18:51:18 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 97A3F6B0071; Fri, 27 Mar 2020 18:51:18 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0240.hostedemail.com [216.40.44.240]) by kanga.kvack.org (Postfix) with ESMTP id 7B8426B006E for ; Fri, 27 Mar 2020 18:51:18 -0400 (EDT) Received: from smtpin04.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 3199F8248068 for ; Fri, 27 Mar 2020 22:51:18 +0000 (UTC) X-FDA: 76642639836.04.low63_458bc632f294f X-Spam-Summary: 2,0,0,cec7871c56a6bdb8,d41d8cd98f00b204,3zin-xgykcf8t7ihbkdlldib.9ljifkru-jjhs79h.lod@flex--walken.bounces.google.com,,RULES_HIT:41:152:355:379:541:800:960:966:973:988:989:1260:1277:1313:1314:1345:1359:1437:1516:1518:1535:1544:1593:1594:1711:1730:1747:1777:1792:2196:2198:2199:2200:2393:2559:2562:2693:3138:3139:3140:3141:3142:3152:3355:3865:3866:3867:3868:3870:3872:4118:4250:4321:4385:4605:5007:6119:6261:6299:6653:6742:7901:7903:8660:9036:9969:10004:11026:11473:11657:11658:11914:12043:12296:12297:12438:12555:12895:12986:13148:13230:13255:14096:14097:14181:14394:14659:14721:21080:21212:21324:21433:21444:21451:21627:21795:21990:30003:30051:30054:30070,0,RBL:209.85.210.202:@flex--walken.bounces.google.com:.lbl8.mailshell.net-66.100.201.100 62.18.0.100,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:fp,MSBL:0,DNSBL:neutral,Custom_rules:0:0:0,LFtime:23,LUA_SUMMARY:none X-HE-Tag: low63_458bc632f294f X-Filterd-Recvd-Size: 7925 Received: from mail-pf1-f202.google.com (mail-pf1-f202.google.com [209.85.210.202]) by imf36.hostedemail.com (Postfix) with ESMTP for ; Fri, 27 Mar 2020 22:51:17 +0000 (UTC) Received: by mail-pf1-f202.google.com with SMTP id b204so9584387pfb.11 for ; Fri, 27 Mar 2020 15:51:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=86ZhzKm5T/6O9jpZoUxqs4yVA0IM57Jhl4+KLMoCVFw=; b=k0FbyRqkOXxRQlfvn1N+cnDG8L1/+HDAoR54lNZ3beA68vtZsiUw5DITNAshJ/ArYi SOAd4ZMMV3FGcrxeKmjC8sQovLZk7wcgo4KGv5l1c6VjbDSnxm49GVMnNWERqXidi4xC 7xhe5z7low3mrkO3wUnK+MuVRdEo7mfElKRSmCh5FYcDJEtJ2qZ7IV5eWgyrwiUF0OAx VPROWPNVXdj227MglU9n1d8myzv1vhZ2wic5PPna/oK2qfYiPMX5FztMkjnmKJOKR6mJ dhqWRH1KqcLE17OEu323a/YRtwLg3GVfptB/YWk7ImNd1qW7Z1QoTqOcClMr7g6szJit gp/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=86ZhzKm5T/6O9jpZoUxqs4yVA0IM57Jhl4+KLMoCVFw=; b=E0PfjG0o8+Yh9ymtSBjI2Q5ZzFCgfdFQH/RMSL1pDB8mZAaP/rZW+2PWJ4MQeNMNuT ZsBs4J33bUN76awrv4iTfX3zHJzNRF9ZhyM+wMl0JhLFWZBty0npZ8Ijyc8Tos3xpnZ+ PclwgKYZYGy0RLXmeiOaz/7hAkBQu474g5cfCrlIvMlJnkz3vfDkXRNHi7+ojXGtqZaa AD/AHk0jWx/9ZumaTyG2teIO9kjRQLQJmjr/mDyz24Skrs79qBM4ELcCGnyNlONXGtKq v7jFGRC02SVnmqAEpP25H8g6fF3z9PL5woU6SGxN4vE8BhpL5AwmJGAS3ex/QK/vfMm7 UUiQ== X-Gm-Message-State: ANhLgQ3t39A+9y9qbOT9Gm7E4K3ncb62IDN5HgaN4JPWpw0i0R63HV61 7e9OgqPI0eioio9q8pE4RCrUW1zIylo= X-Google-Smtp-Source: ADFU+vsPrkID+VTQJXNWuRyxzO+kSp+fAxL/4uWtlgDKm8F2KMwVHD0zZJREluBLHhPyNtq0IKWMj4lzQNs= X-Received: by 2002:a17:90a:9409:: with SMTP id r9mr1775117pjo.39.1585349476789; Fri, 27 Mar 2020 15:51:16 -0700 (PDT) Date: Fri, 27 Mar 2020 15:50:57 -0700 In-Reply-To: <20200327225102.25061-1-walken@google.com> Message-Id: <20200327225102.25061-6-walken@google.com> Mime-Version: 1.0 References: <20200327225102.25061-1-walken@google.com> X-Mailer: git-send-email 2.26.0.rc2.310.g2932bb562d-goog Subject: [PATCH v3 05/10] mmap locking API: convert mmap_sem call sites missed by coccinelle From: Michel Lespinasse To: Andrew Morton , linux-mm Cc: LKML , Peter Zijlstra , Laurent Dufour , Vlastimil Babka , Matthew Wilcox , Liam Howlett , Jerome Glisse , Davidlohr Bueso , David Rientjes , Hugh Dickins , Ying Han , Jason Gunthorpe , Markus Elfring , Michel Lespinasse 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: Convert the last few remaining mmap_sem rwsem calls to use the new mmap locking API. These were missed by coccinelle for some reason (I think coccinelle does not support some of the preprocessor constructs in these files ?) Signed-off-by: Michel Lespinasse Reviewed-by: Daniel Jordan --- arch/mips/mm/fault.c | 10 +++++----- arch/x86/kvm/mmu/paging_tmpl.h | 8 ++++---- drivers/android/binder_alloc.c | 4 ++-- fs/proc/base.c | 6 +++--- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c index 1e8d00793784..c406250d7761 100644 --- a/arch/mips/mm/fault.c +++ b/arch/mips/mm/fault.c @@ -97,7 +97,7 @@ static void __kprobes __do_page_fault(struct pt_regs *regs, unsigned long write, if (user_mode(regs)) flags |= FAULT_FLAG_USER; retry: - down_read(&mm->mmap_sem); + mmap_read_lock(mm); vma = find_vma(mm, address); if (!vma) goto bad_area; @@ -191,7 +191,7 @@ static void __kprobes __do_page_fault(struct pt_regs *regs, unsigned long write, } } - up_read(&mm->mmap_sem); + mmap_read_unlock(mm); return; /* @@ -199,7 +199,7 @@ static void __kprobes __do_page_fault(struct pt_regs *regs, unsigned long write, * Fix it, but check if it's kernel or user first.. */ bad_area: - up_read(&mm->mmap_sem); + mmap_read_unlock(mm); bad_area_nosemaphore: /* User mode accesses just cause a SIGSEGV */ @@ -251,14 +251,14 @@ static void __kprobes __do_page_fault(struct pt_regs *regs, unsigned long write, * We ran out of memory, call the OOM killer, and return the userspace * (which will retry the fault, or kill us if we got oom-killed). */ - up_read(&mm->mmap_sem); + mmap_read_unlock(mm); if (!user_mode(regs)) goto no_context; pagefault_out_of_memory(); return; do_sigbus: - up_read(&mm->mmap_sem); + mmap_read_unlock(mm); /* Kernel mode? Handle exceptions or die */ if (!user_mode(regs)) diff --git a/arch/x86/kvm/mmu/paging_tmpl.h b/arch/x86/kvm/mmu/paging_tmpl.h index e4c8a4cbf407..8cbfe6c96d82 100644 --- a/arch/x86/kvm/mmu/paging_tmpl.h +++ b/arch/x86/kvm/mmu/paging_tmpl.h @@ -165,22 +165,22 @@ static int FNAME(cmpxchg_gpte)(struct kvm_vcpu *vcpu, struct kvm_mmu *mmu, unsigned long pfn; unsigned long paddr; - down_read(¤t->mm->mmap_sem); + mmap_read_lock(current->mm); vma = find_vma_intersection(current->mm, vaddr, vaddr + PAGE_SIZE); if (!vma || !(vma->vm_flags & VM_PFNMAP)) { - up_read(¤t->mm->mmap_sem); + mmap_read_unlock(current->mm); return -EFAULT; } pfn = ((vaddr - vma->vm_start) >> PAGE_SHIFT) + vma->vm_pgoff; paddr = pfn << PAGE_SHIFT; table = memremap(paddr, PAGE_SIZE, MEMREMAP_WB); if (!table) { - up_read(¤t->mm->mmap_sem); + mmap_read_unlock(current->mm); return -EFAULT; } ret = CMPXCHG(&table[index], orig_pte, new_pte); memunmap(table); - up_read(¤t->mm->mmap_sem); + mmap_read_unlock(current->mm); } return (ret != orig_pte); diff --git a/drivers/android/binder_alloc.c b/drivers/android/binder_alloc.c index 5e063739a3a8..cbdc43ed0f9f 100644 --- a/drivers/android/binder_alloc.c +++ b/drivers/android/binder_alloc.c @@ -932,7 +932,7 @@ enum lru_status binder_alloc_free_page(struct list_head *item, mm = alloc->vma_vm_mm; if (!mmget_not_zero(mm)) goto err_mmget; - if (!down_read_trylock(&mm->mmap_sem)) + if (!mmap_read_trylock(mm)) goto err_down_read_mmap_sem_failed; vma = binder_alloc_get_vma(alloc); @@ -946,7 +946,7 @@ enum lru_status binder_alloc_free_page(struct list_head *item, trace_binder_unmap_user_end(alloc, index); } - up_read(&mm->mmap_sem); + mmap_read_unlock(mm); mmput(mm); trace_binder_unmap_kernel_start(alloc, index); diff --git a/fs/proc/base.c b/fs/proc/base.c index 479efdba60b9..0dc54b5d75f2 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -2280,7 +2280,7 @@ proc_map_files_readdir(struct file *file, struct dir_context *ctx) if (!mm) goto out_put_task; - ret = down_read_killable(&mm->mmap_sem); + ret = mmap_read_lock_killable(mm); if (ret) { mmput(mm); goto out_put_task; @@ -2307,7 +2307,7 @@ proc_map_files_readdir(struct file *file, struct dir_context *ctx) p = genradix_ptr_alloc(&fa, nr_files++, GFP_KERNEL); if (!p) { ret = -ENOMEM; - up_read(&mm->mmap_sem); + mmap_read_unlock(mm); mmput(mm); goto out_put_task; } @@ -2316,7 +2316,7 @@ proc_map_files_readdir(struct file *file, struct dir_context *ctx) p->end = vma->vm_end; p->mode = vma->vm_file->f_mode; } - up_read(&mm->mmap_sem); + mmap_read_unlock(mm); mmput(mm); for (i = 0; i < nr_files; i++) {