Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp1062161ybk; Wed, 20 May 2020 20:27:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwoIYHS9ysShyKWDNy+mEJ/go0lgfwQRbEsDTDx5DbiO5gCN5yvgViZaBwmsLg8t30LkCUF X-Received: by 2002:a17:906:eb83:: with SMTP id mh3mr1655613ejb.361.1590031664843; Wed, 20 May 2020 20:27:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1590031664; cv=none; d=google.com; s=arc-20160816; b=WA2j0MssSwhN4LlSn8gLqSg/Grl1KfxaObeNicq6m/0v66MUlDBL6Q+JKBKCSoixZl IgHnwC5EloyyQf3cukTNAJXj6PYVup1zfp7OvqCy5OOiVVMtehGWROH1w2h66Ls/oI+5 DncQm3WO6dZEmLkCs4w5H0CRsVcLuXuFtIEun6sGeeiXYfpLPK2XeQ77xPy4GKDR8fLj tq8csMCLTBqJfKIZK5Q71WhCxR4oAqKrlvNY5p4igStT+0FLelR+HhL8fQM7MBSVI1sC I8wM+4Rlx9xLMYGEsRv7+REeWPZxF2xZJYDdRgeGSVE9YFBFHcm+BSWKzebe9kNFWCxy rDDA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :dkim-signature; bh=i4QbAYW4wS9HMmEjzZKdlY9AUTv75jKjsjwdO/aPcqc=; b=Xgi+Q3TGijoV4/AZBYaP9hqxaQ0nzO05W8y5+kcFH4fWR2077WoxWdz4nYheHrsKbh Sl7X8ECLhI9kWxZYsiMziUBpEHiHd0C2WHsuNssDDJmp5+8+BOGLIrZp0NBZLtz5UU4g Eo4hCnUPKJLA22qVeNGY3DA2dzXhKOIcodmNibBZYWlR75NMmIiCSm6qiHKB9KdY/Rl1 X+ofMHTRLWLcBc9xJJZlpILB51l1dbfEvXVil+XCqhP964amNJX74P/IIxzHS0EZBhut 2eEoZp1fXIoZUr2B8DMHysJDCctm+CV4EYS0lfw9MpqSAOBKRFlkG3xiDZHQtk9UpYSb UXfA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=hgkSAmpn; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z13si2357434ede.147.2020.05.20.20.27.13; Wed, 20 May 2020 20:27:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=hgkSAmpn; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728099AbgEUDXU (ORCPT + 99 others); Wed, 20 May 2020 23:23:20 -0400 Received: from mail.kernel.org ([198.145.29.99]:60314 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727825AbgEUDXU (ORCPT ); Wed, 20 May 2020 23:23:20 -0400 Received: from localhost.localdomain (c-73-231-172-41.hsd1.ca.comcast.net [73.231.172.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id B190F20709; Thu, 21 May 2020 03:23:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1590031398; bh=l4LFB2adLL8Fwr8y3Ullwx1wKTu/CijGRZHMau1S3BM=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=hgkSAmpn3UjiPftlBcqCwQBjtVbcwDRD2pY3YAH3r13ALnBRXu3HEk6GjuSP/tYi6 ZQZ60+cglfgcbXqW+f2pWTBF3CaBRHhpvfWD4x1ujadaabEo9PkpVHO9MHBaaTGJEC 8c2hMJQX+tCfvZeY8qmfzO5ZmiKc11u2K1AoPtNY= Date: Wed, 20 May 2020 20:23:17 -0700 From: Andrew Morton To: Michel Lespinasse Cc: linux-mm , LKML , Peter Zijlstra , Laurent Dufour , Vlastimil Babka , Matthew Wilcox , Liam Howlett , Jerome Glisse , Davidlohr Bueso , David Rientjes , Hugh Dickins , Ying Han , Jason Gunthorpe , Daniel Jordan , John Hubbard Subject: Re: [PATCH v6 05/12] mmap locking API: convert mmap_sem call sites missed by coccinelle Message-Id: <20200520202317.1f7515649dd711b388e40d3f@linux-foundation.org> In-Reply-To: <20200520052908.204642-6-walken@google.com> References: <20200520052908.204642-1-walken@google.com> <20200520052908.204642-6-walken@google.com> X-Mailer: Sylpheed 3.5.1 (GTK+ 2.24.31; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 19 May 2020 22:29:01 -0700 Michel Lespinasse wrote: > 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 ?) From: Andrew Morton Subject: mmap-locking-api-convert-mmap_sem-call-sites-missed-by-coccinelle-fix convert linux-next leftovers Cc: Michel Lespinasse Cc: Daniel Jordan Cc: Laurent Dufour Cc: Vlastimil Babka Cc: Davidlohr Bueso Cc: David Rientjes Cc: Hugh Dickins Cc: Jason Gunthorpe Cc: Jerome Glisse Cc: John Hubbard Cc: Liam Howlett Cc: Matthew Wilcox Cc: Peter Zijlstra Cc: Ying Han Signed-off-by: Andrew Morton --- arch/arm64/kvm/mmu.c | 14 +++++++------- lib/test_hmm.c | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) --- a/lib/test_hmm.c~mmap-locking-api-convert-mmap_sem-call-sites-missed-by-coccinelle-fix +++ a/lib/test_hmm.c @@ -243,9 +243,9 @@ static int dmirror_range_fault(struct dm } range->notifier_seq = mmu_interval_read_begin(range->notifier); - down_read(&mm->mmap_sem); + mmap_read_lock(mm); ret = hmm_range_fault(range); - up_read(&mm->mmap_sem); + mmap_read_unlock(mm); if (ret) { if (ret == -EBUSY) continue; @@ -684,7 +684,7 @@ static int dmirror_migrate(struct dmirro if (!mmget_not_zero(mm)) return -EINVAL; - down_read(&mm->mmap_sem); + mmap_read_lock(mm); for (addr = start; addr < end; addr = next) { vma = find_vma(mm, addr); if (!vma || addr < vma->vm_start || @@ -711,7 +711,7 @@ static int dmirror_migrate(struct dmirro dmirror_migrate_finalize_and_map(&args, dmirror); migrate_vma_finalize(&args); } - up_read(&mm->mmap_sem); + mmap_read_unlock(mm); mmput(mm); /* Return the migrated data for verification. */ @@ -731,7 +731,7 @@ static int dmirror_migrate(struct dmirro return ret; out: - up_read(&mm->mmap_sem); + mmap_read_unlock(mm); mmput(mm); return ret; } @@ -823,9 +823,9 @@ static int dmirror_range_snapshot(struct range->notifier_seq = mmu_interval_read_begin(range->notifier); - down_read(&mm->mmap_sem); + mmap_read_lock(mm); ret = hmm_range_fault(range); - up_read(&mm->mmap_sem); + mmap_read_unlock(mm); if (ret) { if (ret == -EBUSY) continue; --- a/arch/arm64/kvm/mmu.c~mmap-locking-api-convert-mmap_sem-call-sites-missed-by-coccinelle-fix +++ a/arch/arm64/kvm/mmu.c @@ -1084,7 +1084,7 @@ void stage2_unmap_vm(struct kvm *kvm) int idx; idx = srcu_read_lock(&kvm->srcu); - down_read(¤t->mm->mmap_sem); + mmap_read_lock(current->mm); spin_lock(&kvm->mmu_lock); slots = kvm_memslots(kvm); @@ -1092,7 +1092,7 @@ void stage2_unmap_vm(struct kvm *kvm) stage2_unmap_memslot(kvm, memslot); spin_unlock(&kvm->mmu_lock); - up_read(¤t->mm->mmap_sem); + mmap_read_unlock(current->mm); srcu_read_unlock(&kvm->srcu, idx); } @@ -1848,11 +1848,11 @@ static int user_mem_abort(struct kvm_vcp } /* Let's check if we will get back a huge page backed by hugetlbfs */ - down_read(¤t->mm->mmap_sem); + mmap_read_lock(current->mm); vma = find_vma_intersection(current->mm, hva, hva + 1); if (unlikely(!vma)) { kvm_err("Failed to find VMA for hva 0x%lx\n", hva); - up_read(¤t->mm->mmap_sem); + mmap_read_unlock(current->mm); return -EFAULT; } @@ -1879,7 +1879,7 @@ static int user_mem_abort(struct kvm_vcp if (vma_pagesize == PMD_SIZE || (vma_pagesize == PUD_SIZE && kvm_stage2_has_pmd(kvm))) gfn = (fault_ipa & huge_page_mask(hstate_vma(vma))) >> PAGE_SHIFT; - up_read(¤t->mm->mmap_sem); + mmap_read_unlock(current->mm); /* We need minimum second+third level pages */ ret = mmu_topup_memory_cache(memcache, kvm_mmu_cache_min_pages(kvm), @@ -2456,7 +2456,7 @@ int kvm_arch_prepare_memory_region(struc (kvm_phys_size(kvm) >> PAGE_SHIFT)) return -EFAULT; - down_read(¤t->mm->mmap_sem); + mmap_read_lock(current->mm); /* * A memory region could potentially cover multiple VMAs, and any holes * between them, so iterate over all of them to find out if we can map @@ -2515,7 +2515,7 @@ int kvm_arch_prepare_memory_region(struc stage2_flush_memslot(kvm, memslot); spin_unlock(&kvm->mmu_lock); out: - up_read(¤t->mm->mmap_sem); + mmap_read_unlock(current->mm); return ret; } _