Subject: linux-next: manual merge of the akpm tree with Linus' tree

From: Stephen Rothwell <[email-masked]>
Date: Mon, 2 Dec 2019 13:17:22 +1100

Hi all,

Today's linux-next merge of the akpm tree got a conflict in:

  include/linux/pagewalk.h

between commit:

  5b932abfc562 ("mm: pagewalk: add test_p?d callbacks")

from Linus' tree and patch:

  "mm: pagewalk: add test_p?d callbacks"

from the akpm tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc include/linux/pagewalk.h
index 2c9725bdcf1f,fe61448c5900..000000000000
--- a/include/linux/pagewalk.h
+++ b/include/linux/pagewalk.h
@@@ -24,9 -24,11 +24,14 @@@ struct mm_walk
   *			"do page table walk over the current vma", returning
   *			a negative value means "abort current page table walk
   *			right now" and returning 1 means "skip the current vma"
+  * @test_pmd:		similar to test_walk(), but called for every pmd.
+  * @test_pud:		similar to test_walk(), but called for every pud.
+  * @test_p4d:		similar to test_walk(), but called for every p4d.
+  *			Returning 0 means walk this part of the page tables,
+  *			returning 1 means to skip this range.
 + * @pre_vma:            if set, called before starting walk on a non-null vma.
 + * @post_vma:           if set, called after a walk on a non-null vma, provided
 + *                      that @pre_vma and the vma walk succeeded.
   *
   * p?d_entry callbacks are called even if those levels are folded on a
   * particular architecture/configuration.
@@@ -49,9 -51,12 +54,15 @@@ struct mm_walk_ops 
  			     struct mm_walk *walk);
  	int (*test_walk)(unsigned long addr, unsigned long next,
  			struct mm_walk *walk);
+ 	int (*test_pmd)(unsigned long addr, unsigned long next,
+ 			pmd_t *pmd_start, struct mm_walk *walk);
+ 	int (*test_pud)(unsigned long addr, unsigned long next,
+ 			pud_t *pud_start, struct mm_walk *walk);
+ 	int (*test_p4d)(unsigned long addr, unsigned long next,
+ 			p4d_t *p4d_start, struct mm_walk *walk);
 +	int (*pre_vma)(unsigned long start, unsigned long end,
 +		       struct mm_walk *walk);
 +	void (*post_vma)(struct mm_walk *walk);
  };
  
  /**