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

From: Stephen Rothwell <[email-masked]>
Date: Thu, 8 Aug 2024 13:58:36 +1000

Hi all,

After merging the s390 tree, today's linux-next build (s390 defconfig)
failed like this:

In file included from include/linux/percpu.h:5,
                 from include/linux/percpu_counter.h:14,
                 from include/linux/mm_types.h:21,
                 from include/linux/ptdump.h:6,
                 from arch/s390/mm/dump_pagetables.c:3:
arch/s390/mm/dump_pagetables.c: In function 'add_marker':
include/linux/slab.h:848:61: error: too many arguments to function 'kvrealloc_noprof'
  848 | #define kvrealloc(...)                          alloc_hooks(kvrealloc_noprof(__VA_ARGS__))
      |                                                             ^~~~~~~~~~~~~~~~
include/linux/alloc_tag.h:206:16: note: in definition of macro 'alloc_hooks_tag'
  206 |         typeof(_do_alloc) _res = _do_alloc;                             \
      |                ^~~~~~~~~
include/linux/slab.h:848:49: note: in expansion of macro 'alloc_hooks'
  848 | #define kvrealloc(...)                          alloc_hooks(kvrealloc_noprof(__VA_ARGS__))
      |                                                 ^~~~~~~~~~~
arch/s390/mm/dump_pagetables.c:259:27: note: in expansion of macro 'kvrealloc'
  259 |                 markers = kvrealloc(markers, oldsize, newsize, GFP_KERNEL);
      |                           ^~~~~~~~~
In file included from include/linux/fs.h:45,
                 from include/linux/seq_file.h:11,
                 from arch/s390/mm/dump_pagetables.c:4:
include/linux/slab.h:846:7: note: declared here
  846 | void *kvrealloc_noprof(const void *p, size_t size, gfp_t flags)
      |       ^~~~~~~~~~~~~~~~
include/linux/slab.h:848:61: error: too many arguments to function 'kvrealloc_noprof'
  848 | #define kvrealloc(...)                          alloc_hooks(kvrealloc_noprof(__VA_ARGS__))
      |                                                             ^~~~~~~~~~~~~~~~
include/linux/alloc_tag.h:206:34: note: in definition of macro 'alloc_hooks_tag'
  206 |         typeof(_do_alloc) _res = _do_alloc;                             \
      |                                  ^~~~~~~~~
include/linux/slab.h:848:49: note: in expansion of macro 'alloc_hooks'
  848 | #define kvrealloc(...)                          alloc_hooks(kvrealloc_noprof(__VA_ARGS__))
      |                                                 ^~~~~~~~~~~
arch/s390/mm/dump_pagetables.c:259:27: note: in expansion of macro 'kvrealloc'
  259 |                 markers = kvrealloc(markers, oldsize, newsize, GFP_KERNEL);
      |                           ^~~~~~~~~
include/linux/slab.h:846:7: note: declared here
  846 | void *kvrealloc_noprof(const void *p, size_t size, gfp_t flags)
      |       ^~~~~~~~~~~~~~~~

Caused by commit

  d0e7915d2ad3 ("s390/mm/ptdump: Generate address marker array dynamically")

interacting with commit

  d4a913add37d ("mm: kvmalloc: align kvrealloc() with krealloc()")

from the mm-unstable branch of the mm tree.

I have applied the following merge fix patch.

From: Stephen Rothwell <[email-masked]>
Date: Thu, 8 Aug 2024 13:50:39 +1000
Subject: [PATCH] fixup for "s390/mm/ptdump: Generate address marker array dynamically"

interacting with "mm: kvmalloc: align kvrealloc() with krealloc()"
from the mm tree.

Signed-off-by: Stephen Rothwell <[email-masked]>
---
 arch/s390/mm/dump_pagetables.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/s390/mm/dump_pagetables.c b/arch/s390/mm/dump_pagetables.c
index 9e2dc42143b3..fa54f3bc0c8d 100644
--- a/arch/s390/mm/dump_pagetables.c
+++ b/arch/s390/mm/dump_pagetables.c
@@ -256,7 +256,7 @@ static int add_marker(unsigned long start, unsigned long end, const char *name)
 	if (!oldsize)
 		markers = kvmalloc(newsize, GFP_KERNEL);
 	else
-		markers = kvrealloc(markers, oldsize, newsize, GFP_KERNEL);
+		markers = kvrealloc(markers, newsize, GFP_KERNEL);
 	if (!markers)
 		goto error;
 	markers[markers_cnt].is_start = 1;
-- 
2.43.0

-- 
Cheers,
Stephen Rothwell