Re: fs/zonefs/./trace.h:22:1: sparse: sparse: cast to restricted blk_opf_t

Bart Van Assche
2022-08-10T18:08:18Z

On 8/10/22 07:36, Damien Le Moal wrote:
> On 2022/08/08 8:37, Bart Van Assche wrote:
>> Thanks for having taken a look. Please help with verifying whether the
>> following patch is sufficient to fix the reported warning: "[PATCH]
>> tracing: Suppress sparse warnings triggered by is_signed_type()"
>> (https://lore.kernel.org/all/20220717151047.19220-1-bvanassche@acm.org/).
>
> With the current Linus tree, I do not see this sparse warning. However, applying
> the above patch, "make M=fs/zonefs C=1" generates a lot of warnings:

That doesn't make sense to me. My patch reduces the number of sparse
warnings that are reported.

> make -j64 M=fs/zonefs C=1
> CC [M] fs/zonefs/super.o
> CC [M] fs/zonefs/sysfs.o
> CHECK fs/zonefs/sysfs.c
> CHECK fs/zonefs/super.c
> fs/zonefs/sysfs.c: note: in included file (through include/linux/bitops.h,
> include/linux/kernel.h, arch/x86/include/asm/percpu.h,
> arch/x86/include/asm/preempt.h, include/linux/preempt.h,
> include/linux/spinlock.h, ...):
> ./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'

I think that you are hitting a bug in sparse. See also
https://lore.kernel.org/all/e91d351c-3c16-e48d-7e9d-9f096c4acbc9@debian.org/T/.
I also see the above warnings if I use the sparse binary from Debian
testing. I do not see these sparse warnings if I download the sparse
source code and compile that source code myself.

Bart.