linux-next: build failure after merge of the bitmap tree

Stephen Rothwell
2022-07-22T09:27:34Z

[-- Attachment #1: Type: text/plain, Size: 14825 bytes --]

Hi all,

After merging the bitmap tree, today's linux-next build (powerpc
ppc64_defconfig) failed like this:

In file included from include/linux/cred.h:16,
from include/linux/seq_file.h:13,
from arch/powerpc/include/asm/machdep.h:6,
from arch/powerpc/include/asm/archrandom.h:5,
from include/linux/random.h:109,
from include/linux/nodemask.h:97,
from include/linux/list_lru.h:12,
from include/linux/fs.h:13,
from include/linux/compat.h:17,
from arch/powerpc/kernel/asm-offsets.c:12:
include/linux/sched.h:1203:9: error: unknown type name 'nodemask_t'
1203 | nodemask_t mems_allowed;
| ^~~~~~~~~~
In file included from include/linux/gfp.h:7,
from include/linux/percpu_counter.h:16,
from include/linux/sched/user.h:7,
from include/linux/cred.h:17,
from include/linux/seq_file.h:13,
from arch/powerpc/include/asm/machdep.h:6,
from arch/powerpc/include/asm/archrandom.h:5,
from include/linux/random.h:109,
from include/linux/nodemask.h:97,
from include/linux/list_lru.h:12,
from include/linux/fs.h:13,
from include/linux/compat.h:17,
from arch/powerpc/kernel/asm-offsets.c:12:
include/linux/mmzone.h:1166:41: error: unknown type name 'nodemask_t'
1166 | nodemask_t *nodes);
| ^~~~~~~~~~
In file included from include/linux/gfp.h:7,
from include/linux/percpu_counter.h:16,
from include/linux/sched/user.h:7,
from include/linux/cred.h:17,
from include/linux/seq_file.h:13,
from arch/powerpc/include/asm/machdep.h:6,
from arch/powerpc/include/asm/archrandom.h:5,
from include/linux/random.h:109,
from include/linux/nodemask.h:97,
from include/linux/list_lru.h:12,
from include/linux/fs.h:13,
from include/linux/compat.h:17,
from arch/powerpc/kernel/asm-offsets.c:12:
include/linux/mmzone.h:1185:41: error: unknown type name 'nodemask_t'
1185 | nodemask_t *nodes)
| ^~~~~~~~~~
include/linux/mmzone.h:1211:41: error: unknown type name 'nodemask_t'
1211 | nodemask_t *nodes)
| ^~~~~~~~~~
include/linux/mmzone.h:1254:39: error: unknown type name 'nodemask_t'
1254 | static inline bool movable_only_nodes(nodemask_t *nodes)
| ^~~~~~~~~~
In file included from include/linux/percpu_counter.h:16,
from include/linux/sched/user.h:7,
from include/linux/cred.h:17,
from include/linux/seq_file.h:13,
from arch/powerpc/include/asm/machdep.h:6,
from arch/powerpc/include/asm/archrandom.h:5,
from include/linux/random.h:109,
from include/linux/nodemask.h:97,
from include/linux/list_lru.h:12,
from include/linux/fs.h:13,
from include/linux/compat.h:17,
from arch/powerpc/kernel/asm-offsets.c:12:
include/linux/gfp.h:198:17: error: unknown type name 'nodemask_t'
198 | nodemask_t *nodemask);
| ^~~~~~~~~~
include/linux/gfp.h:200:17: error: unknown type name 'nodemask_t'
200 | nodemask_t *nodemask);
| ^~~~~~~~~~
include/linux/gfp.h:203:33: error: unknown type name 'nodemask_t'
203 | nodemask_t *nodemask, int nr_pages,
| ^~~~~~~~~~
include/linux/gfp.h: In function 'alloc_pages_bulk_list':
include/linux/gfp.h:215:16: error: implicit declaration of function '__alloc_pages_bulk'; did you mean 'alloc_pages_bulk_list'? [-Werror=implicit-function-declaration]
215 | return __alloc_pages_bulk(gfp, numa_mem_id(), NULL, nr_pages, list, NULL);
| ^~~~~~~~~~~~~~~~~~
| alloc_pages_bulk_list
In file included from include/linux/container_of.h:5,
from include/linux/list.h:5,
from include/linux/preempt.h:11,
from include/linux/spinlock.h:55,
from include/linux/ipc.h:5,
from include/uapi/linux/sem.h:5,
from include/linux/sem.h:5,
from include/linux/compat.h:14,
from arch/powerpc/kernel/asm-offsets.c:12:
include/linux/gfp.h: In function '__alloc_pages_node':
include/linux/gfp.h:241:52: error: implicit declaration of function 'node_online'; did you mean 'node_zonelist'? [-Werror=implicit-function-declaration]
241 | VM_WARN_ON((gfp_mask & __GFP_THISNODE) && !node_online(nid));
| ^~~~~~~~~~~
include/linux/build_bug.h:30:63: note: in definition of macro 'BUILD_BUG_ON_INVALID'
30 | #define BUILD_BUG_ON_INVALID(e) ((void)(sizeof((__force long)(e))))
| ^
include/linux/gfp.h:241:9: note: in expansion of macro 'VM_WARN_ON'
241 | VM_WARN_ON((gfp_mask & __GFP_THISNODE) && !node_online(nid));
| ^~~~~~~~~~
In file included from include/linux/percpu_counter.h:16,
from include/linux/sched/user.h:7,
from include/linux/cred.h:17,
from include/linux/seq_file.h:13,
from arch/powerpc/include/asm/machdep.h:6,
from arch/powerpc/include/asm/archrandom.h:5,
from include/linux/random.h:109,
from include/linux/nodemask.h:97,
from include/linux/list_lru.h:12,
from include/linux/fs.h:13,
from include/linux/compat.h:17,
from arch/powerpc/kernel/asm-offsets.c:12:
include/linux/gfp.h:243:16: error: implicit declaration of function '__alloc_pages'; did you mean '__add_pages'? [-Werror=implicit-function-declaration]
243 | return __alloc_pages(gfp_mask, order, nid, NULL);
| ^~~~~~~~~~~~~
| __add_pages
include/linux/gfp.h:243:16: warning: returning 'int' from a function with return type 'struct page *' makes pointer from integer without a cast [-Wint-conversion]
243 | return __alloc_pages(gfp_mask, order, nid, NULL);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/gfp.h: In function '__folio_alloc_node':
include/linux/gfp.h:252:16: error: implicit declaration of function '__folio_alloc'; did you mean '__folio_alloc_node'? [-Werror=implicit-function-declaration]
252 | return __folio_alloc(gfp, order, nid, NULL);
| ^~~~~~~~~~~~~
| __folio_alloc_node
include/linux/gfp.h:252:16: warning: returning 'int' from a function with return type 'struct folio *' makes pointer from integer without a cast [-Wint-conversion]
252 | return __folio_alloc(gfp, order, nid, NULL);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/gfp.h: At top level:
include/linux/gfp.h:366:49: error: unknown type name 'nodemask_t'
366 | int nid, nodemask_t *nodemask);
| ^~~~~~~~~~
In file included from include/linux/mm.h:703,
from include/linux/scatterlist.h:8,
from include/linux/dma-mapping.h:10,
from arch/powerpc/include/asm/machdep.h:8,
from arch/powerpc/include/asm/archrandom.h:5,
from include/linux/random.h:109,
from include/linux/nodemask.h:97,
from include/linux/list_lru.h:12,
from include/linux/fs.h:13,
from include/linux/compat.h:17,
from arch/powerpc/kernel/asm-offsets.c:12:
include/linux/huge_mm.h: In function '__transparent_hugepage_enabled':
include/linux/huge_mm.h:166:13: error: implicit declaration of function 'vma_is_dax' [-Werror=implicit-function-declaration]
166 | if (vma_is_dax(vma))
| ^~~~~~~~~~
include/linux/huge_mm.h: In function 'file_thp_enabled':
include/linux/huge_mm.h:183:29: error: invalid use of undefined type 'struct file'
183 | inode = vma->vm_file->f_inode;
| ^~
include/linux/huge_mm.h:187:17: error: implicit declaration of function 'inode_is_open_for_write' [-Werror=implicit-function-declaration]
187 | !inode_is_open_for_write(inode) && S_ISREG(inode->i_mode);
| ^~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/stat.h:7,
from include/linux/compat.h:12,
from arch/powerpc/kernel/asm-offsets.c:12:
include/linux/huge_mm.h:187:64: error: invalid use of undefined type 'struct inode'
187 | !inode_is_open_for_write(inode) && S_ISREG(inode->i_mode);
| ^~
include/uapi/linux/stat.h:22:28: note: in definition of macro 'S_ISREG'
22 | #define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
| ^
In file included from include/linux/scatterlist.h:8,
from include/linux/dma-mapping.h:10,
from arch/powerpc/include/asm/machdep.h:8,
from arch/powerpc/include/asm/archrandom.h:5,
from include/linux/random.h:109,
from include/linux/nodemask.h:97,
from include/linux/list_lru.h:12,
from include/linux/fs.h:13,
from include/linux/compat.h:17,
from arch/powerpc/kernel/asm-offsets.c:12:
include/linux/mm.h: At top level:
include/linux/mm.h:1833:49: error: unknown type name 'nodemask_t'
1833 | extern void show_free_areas(unsigned int flags, nodemask_t *nodemask);
| ^~~~~~~~~~
include/linux/mm.h: In function 'get_num_physpages':
include/linux/mm.h:2518:9: error: implicit declaration of function 'for_each_online_node'; did you mean 'for_each_online_pgdat'? [-Werror=implicit-function-declaration]
2518 | for_each_online_node(nid)
| ^~~~~~~~~~~~~~~~~~~~
| for_each_online_pgdat
include/linux/mm.h:2518:34: error: expected ';' before 'phys_pages'
2518 | for_each_online_node(nid)
| ^
| ;
2519 | phys_pages += node_present_pages(nid);
| ~~~~~~~~~~
include/linux/mm.h: At top level:
include/linux/mm.h:2569:42: error: unknown type name 'nodemask_t'
2569 | extern void show_mem(unsigned int flags, nodemask_t *nodemask);
| ^~~~~~~~~~
include/linux/mm.h:2578:33: error: unknown type name 'nodemask_t'
2578 | void warn_alloc(gfp_t gfp_mask, nodemask_t *nodemask, const char *fmt, ...);
| ^~~~~~~~~~
include/linux/mm.h: In function 'seal_check_future_write':
include/linux/mm.h:3411:21: error: 'F_SEAL_FUTURE_WRITE' undeclared (first use in this function)
3411 | if (seals & F_SEAL_FUTURE_WRITE) {
| ^~~~~~~~~~~~~~~~~~~
include/linux/mm.h:3411:21: note: each undeclared identifier is reported only once for each function it appears in
In file included from include/linux/compat.h:17,
from arch/powerpc/kernel/asm-offsets.c:12:
include/linux/fs.h: At top level:
include/linux/fs.h:2977:20: error: conflicting types for 'inode_is_open_for_write'; have 'bool(const struct inode *)' {aka '_Bool(const struct inode *)'}
2977 | static inline bool inode_is_open_for_write(const struct inode *inode)
| ^~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/mm.h:703,
from include/linux/scatterlist.h:8,
from include/linux/dma-mapping.h:10,
from arch/powerpc/include/asm/machdep.h:8,
from arch/powerpc/include/asm/archrandom.h:5,
from include/linux/random.h:109,
from include/linux/nodemask.h:97,
from include/linux/list_lru.h:12,
from include/linux/fs.h:13,
from include/linux/compat.h:17,
from arch/powerpc/kernel/asm-offsets.c:12:
include/linux/huge_mm.h:187:17: note: previous implicit declaration of 'inode_is_open_for_write' with type 'int()'
187 | !inode_is_open_for_write(inode) && S_ISREG(inode->i_mode);
| ^~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/compat.h:17,
from arch/powerpc/kernel/asm-offsets.c:12:
include/linux/fs.h:3364:20: error: conflicting types for 'vma_is_dax'; have 'bool(const struct vm_area_struct *)' {aka '_Bool(const struct vm_area_struct *)'}
3364 | static inline bool vma_is_dax(const struct vm_area_struct *vma)
| ^~~~~~~~~~
In file included from include/linux/mm.h:703,
from include/linux/scatterlist.h:8,
from include/linux/dma-mapping.h:10,
from arch/powerpc/include/asm/machdep.h:8,
from arch/powerpc/include/asm/archrandom.h:5,
from include/linux/random.h:109,
from include/linux/nodemask.h:97,
from include/linux/list_lru.h:12,
from include/linux/fs.h:13,
from include/linux/compat.h:17,
from arch/powerpc/kernel/asm-offsets.c:12:
include/linux/huge_mm.h:166:13: note: previous implicit declaration of 'vma_is_dax' with type 'int()'
166 | if (vma_is_dax(vma))
| ^~~~~~~~~~

I am not sure which commit caused this. Though I suspect

bbe8fb1a3c53 ("lib/nodemask: inline next_node_in() and node_random()")

which added the include of random.h to nodemask.h

I have used the bitmap tree from next-20220721 for today.

--
Cheers,
Stephen Rothwell

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]