Re: [GIT PULL] percpu fix for v4.10-rc6

From: Tejun Heo
Date: Tue Jan 31 2017 - 17:27:30 EST


On Tue, Jan 31, 2017 at 02:17:10PM -0800, Linus Torvalds wrote:
> Because there definitely have been users of the bitop routines that
> assign the result to an "int", and I have some dim memory of us also
> having had things like drivers that made their own "bool" variables
> and use "char" for them.
>
> But I'm not seeing it. The generic bitop pattern seems to be
>
> static inline int test_and_change_bit(int nr, volatile unsigned long *addr)
> ...
> return (old & mask) != 0;
>
> which is fine.
>
> Just exactly what code did you look at?

My bad. I misread the generic test_bit() code and was reading the
inner helper of ppc, DEFINE_TESTOP macro, which returns the masked
value. We used to have this problem, right? I seem to have a memory
of hitting this issue.

Is there a reason we don't make these functions explicitly return
bool? To avoid unnecessary boolean conversion by the compiler? If
so, there gotta be a way to avoid that.

Thanks.

--
tejun