Subject: Re: [linux-next] selftests/bpf fails to build

From: Saket Kumar Bhaskar <[email-masked]>
Date: Fri, 9 May 2025 17:40:00 +0530

On Fri, May 09, 2025 at 05:32:51PM +0530, Venkat Rao Bagalkote wrote:
> Hello,
> 
> 
> I am observing selftests/bpf fails to build on the next-20250508 kernel.
> 
> 
> Errors:
> 
> 
>  GEN
> /root/linux-next/tools/testing/selftests/bpf/tools/build/bpftool/vmlinux.h
> bpf_testmod.c:494:17: error: initialization of 'ssize_t (*)(struct file *,
> struct kobject *, const struct bin_attribute *, char *, loff_t,  size_t)'
> {aka 'long int (*)(struct file *, struct kobject *, const struct
> bin_attribute *, char *, long long int,  long unsigned int)'} from
> incompatible pointer type 'ssize_t (*)(struct file *, struct kobject *,
> struct bin_attribute *, char *, loff_t, size_t)' {aka 'long int (*)(struct
> file *, struct kobject *, struct bin_attribute *, char *, long long int, 
> long unsigned int)'} [-Wincompatible-pointer-types]
>   494 |         .read = bpf_testmod_test_read,
>       |                 ^~~~~~~~~~~~~~~~~~~~~
> bpf_testmod.c:494:17: note: (near initialization for
> 'bin_attr_bpf_testmod_file.read')
> bpf_testmod.c:495:18: error: initialization of 'ssize_t (*)(struct file *,
> struct kobject *, const struct bin_attribute *, char *, loff_t,  size_t)'
> {aka 'long int (*)(struct file *, struct kobject *, const struct
> bin_attribute *, char *, long long int,  long unsigned int)'} from
> incompatible pointer type 'ssize_t (*)(struct file *, struct kobject *,
> struct bin_attribute *, char *, loff_t, size_t)' {aka 'long int (*)(struct
> file *, struct kobject *, struct bin_attribute *, char *, long long int, 
> long unsigned int)'} [-Wincompatible-pointer-types]
>   495 |         .write = bpf_testmod_test_write,
>       |                  ^~~~~~~~~~~~~~~~~~~~~~
> bpf_testmod.c:495:18: note: (near initialization for
> 'bin_attr_bpf_testmod_file.write')
> make[4]: *** [/root/linux-next/scripts/Makefile.build:203: bpf_testmod.o]
> Error 1
> make[3]: *** [/root/linux-next/Makefile:2009: .] Error 2
> make[2]: *** [Makefile:248: __sub-make] Error 2
> make[1]: *** [Makefile:18: all] Error 2
> make: *** [Makefile:282: test_kmods/bpf_testmod.ko] Error 2
> make: *** Waiting for unfinished jobs...
> 
> 
> If you happen to fix this, please add below tag.
> 
> 
> Reported-by: Venkat Rao Bagalkote <[email-masked]>
> 
> 
> 
> Regards,
> 
> Venkat.
> 
Hi Venkat, thanks for reporting this. This is due to Commit 
97d06802d10a ("sysfs: constify bin_attribute argument of bin_attribute::read/write()")
that changed the required type for struct bin_attribute to const struct bin_attribute.

Will send out a patch to fix this, shortly.

Thanks,
Saket