[powerpc] Build failure include/linux/compiler_types.h __alloc_size__ (next-20220928)

From: Sachin Sant
Date: Thu Sep 29 2022 - 02:21:25 EST


Linux-next 6.0.0-rc7-next-20220928 fails to build on powerpc with
following error:

make -j 17 -s && make modules_install && make install
In file included from <command-line>:
./include/linux/percpu.h: In function '__alloc_reserved_percpu':
././include/linux/compiler_types.h:279:30: error: expected declaration specifiers before '__alloc_size__'
#define __alloc_size(x, ...) __alloc_size__(x, ## __VA_ARGS__) __malloc
^~~~~~~~~~~~~~
./include/linux/percpu.h:120:74: note: in expansion of macro '__alloc_size'
extern void __percpu *__alloc_reserved_percpu(size_t size, size_t align) __alloc_size(1);
^~~~~~~~~~~~
In file included from ./include/linux/prandom.h:12,
from ./include/linux/random.h:108,
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/percpu.h:121:13: error: storage class specified for parameter '__is_kernel_percpu_address'
extern bool __is_kernel_percpu_address(unsigned long addr, unsigned long *can_addr);
^~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/percpu.h:122:13: error: storage class specified for parameter 'is_kernel_percpu_address'
extern bool is_kernel_percpu_address(unsigned long addr);
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from <command-line>:
././include/linux/compiler_types.h:279:30: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__alloc_size__'
#define __alloc_size(x, ...) __alloc_size__(x, ## __VA_ARGS__) __malloc
^~~~~~~~~~~~~~
./include/linux/percpu.h:128:80: note: in expansion of macro '__alloc_size'
extern void __percpu *__alloc_percpu_gfp(size_t size, size_t align, gfp_t gfp) __alloc_size(1);
^~~~~~~~~~~~
././include/linux/compiler_types.h:279:30: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__alloc_size__'
#define __alloc_size(x, ...) __alloc_size__(x, ## __VA_ARGS__) __malloc
^~~~~~~~~~~~~~
./include/linux/percpu.h:129:65: note: in expansion of macro '__alloc_size'
extern void __percpu *__alloc_percpu(size_t size, size_t align) __alloc_size(1);
^~~~~~~~~~~~
In file included from ./include/linux/prandom.h:12,
from ./include/linux/random.h:108,
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/percpu.h:130:13: error: storage class specified for parameter 'free_percpu'
extern void free_percpu(void __percpu *__pdata);
^~~~~~~~~~~
./include/linux/percpu.h:131:20: error: storage class specified for parameter 'per_cpu_ptr_to_phys'
extern phys_addr_t per_cpu_ptr_to_phys(void *addr);
^~~~~~~~~~~~~~~~~~~
…….
…….

Git bisect points to the following patch:

commit 63caa04ec60583b1dfc8610a59697daf03c158e6
slab: Remove __malloc attribute from realloc functions

Have attached .config used

Thanks
- Sachin

Attachment: config_next
Description: Binary data