Re: [for-linus][PATCH 01/10] tracing: Suppress sparse warnings triggered by is_signed_type()

From: Linus Torvalds
Date: Tue Aug 23 2022 - 19:19:02 EST


On Tue, Aug 23, 2022 at 3:05 PM Bart Van Assche <bvanassche@xxxxxxx> wrote:
>
> Thank you Rasmus for having shared this information. Since sparse will
> have to be modified anyway, how about extending it such that the bitwise
> attribute can be removed from a type, e.g. via a new no_bitwise
> attribute?

I think it's actually easier to just make sparse happy.

Can you try the sparse version at

git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/sparse.git

which I just set up temporarily with some patches of mine. It also
makes that '__cond_acquires' thing work that refcount_dec_and_lock()
uses.

It does require that kernel change to make

#define is_signed_type(type) (((type)(-1)) <= (type)0)

in both places, since only "no bits set" and "all bits set" are
special values for bitwise types.

Those patches of mine are fairly hacky, and I think Luc would probably
do it differently, but apart from the very last one, they aren't
actively disgusting.

Linus