Subject: Re: Build failure in -next with get_user_pages_remote() API change

From: Peter Xu <[email-masked]>
Date: Fri, 10 Jul 2020 08:24:57 -0400

On Fri, Jul 10, 2020 at 12:32:01PM +0100, Mark Brown wrote:
> Today's -next fails to build in various arm64 configs with:
> 
> arch/arm64/kernel/mte.c:225:23: error: too many arguments to function call, expected 7, have 8
>                                             &page, &vma, NULL);
>                                                          ^~~~
> ./include/linux/stddef.h:8:14: note: expanded from macro 'NULL'
> #define NULL ((void *)0)
>              ^~~~~~~~~~~
> ./include/linux/mm.h:1705:6: note: 'get_user_pages_remote' declared here
> long get_user_pages_remote(struct mm_struct *mm,
>      ^
> 1 error generated.
> 
> caused by b7363b0ab88d66d3c (mm/gup: remove task_struct pointer for all
> gup code) which updated the signature of get_user_pages_remote() without
> updating the caller in mte.c.

We should need to squash into "mm/gup: remove task_struct pointer for all gup
code" with:

diff --git a/arch/arm64/kernel/mte.c b/arch/arm64/kernel/mte.c
index 934639ab225d..11e558b02a05 100644
--- a/arch/arm64/kernel/mte.c
+++ b/arch/arm64/kernel/mte.c
@@ -221,7 +221,7 @@ static int __access_remote_tags(struct task_struct *tsk, struct mm_struct *mm,
                void *maddr;
                struct page *page = NULL;
 
-               ret = get_user_pages_remote(tsk, mm, addr, 1, gup_flags,
+               ret = get_user_pages_remote(mm, addr, 1, gup_flags,
                                            &page, &vma, NULL);
                if (ret <= 0)
                        break;

Seems to be a new caller merged recently, so it got left behind during the
rebases...  Sorry for not noticing that.

Thanks,

-- 
Peter Xu