Subject: linux-next: build failure after merge of the hmm tree

From: Stephen Rothwell <[email-masked]>
Date: Mon, 1 Jul 2019 21:08:53 +1000

Hi all,

After merging the hmm tree, today's linux-next build (x86_64 allmodconfig)
failed like this:

mm/hmm.c: In function 'hmm_get_or_create':
mm/hmm.c:50:2: error: implicit declaration of function 'lockdep_assert_held_exclusive'; did you mean 'lockdep_assert_held_once'? [-Werror=implicit-function-declaration]
  lockdep_assert_held_exclusive(&mm->mmap_sem);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  lockdep_assert_held_once

Caused by commit

  8a9320b7ec5d ("mm/hmm: Simplify hmm_get_or_create and make it reliable")

interacting with commit

  9ffbe8ac05db ("locking/lockdep: Rename lockdep_assert_held_exclusive() -> lockdep_assert_held_write()")

from the tip tree.

I have added the following merge fix.

From: Stephen Rothwell <[email-masked]>
Date: Mon, 1 Jul 2019 21:05:59 +1000
Subject: [PATCH] mm/hmm: fixup for "locking/lockdep: Rename
 lockdep_assert_held_exclusive() -> lockdep_assert_held_write()"

Signed-off-by: Stephen Rothwell <[email-masked]>
---
 mm/hmm.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/mm/hmm.c b/mm/hmm.c
index c1bdcef403ee..2ddbd589b207 100644
--- a/mm/hmm.c
+++ b/mm/hmm.c
@@ -47,7 +47,7 @@ static struct hmm *hmm_get_or_create(struct mm_struct *mm)
 {
 	struct hmm *hmm;
 
-	lockdep_assert_held_exclusive(&mm->mmap_sem);
+	lockdep_assert_held_write(&mm->mmap_sem);
 
 	/* Abuse the page_table_lock to also protect mm->hmm. */
 	spin_lock(&mm->page_table_lock);
@@ -248,7 +248,7 @@ static const struct mmu_notifier_ops hmm_mmu_notifier_ops = {
  */
 int hmm_mirror_register(struct hmm_mirror *mirror, struct mm_struct *mm)
 {
-	lockdep_assert_held_exclusive(&mm->mmap_sem);
+	lockdep_assert_held_write(&mm->mmap_sem);
 
 	/* Sanity check */
 	if (!mm || !mirror || !mirror->ops)
-- 
2.20.1

-- 
Cheers,
Stephen Rothwell