RE: [PATCH 1/7 5.10.y] tracing: Define the is_signed_type() macro once

From: Farber, Eliav

Date: Wed Sep 17 2025 - 06:37:52 EST


> On Tue, Sep 16, 2025 at 09:22:53PM +0000, Eliav Farber wrote:
> > From: Bart Van Assche <bvanassche@xxxxxxx>
> >
> > commit 92d23c6e94157739b997cacce151586a0d07bb8a upstream.
>
> This is only in 6.1, and not other trees, why is it needed here?

It exists also in 5.15:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/include/linux/overflow.h?h=v5.15.193&id=ed6e37e30826b12572636c6bbfe6319233690c90

Without this change, I get many compilation errors when backporting
commit d53b5d862acd ("minmax: allow min()/max()/clamp() if the
arguments have the same signedness.")

CALL scripts/atomic/check-atomics.sh
CC arch/arm64/kernel/asm-offsets.s
In file included from ./include/linux/bits.h:22,
from ./include/linux/ioport.h:15,
from ./include/linux/acpi.h:12,
from ./include/acpi/apei.h:9,
from ./include/acpi/ghes.h:5,
from ./include/linux/arm_sdei.h:8,
from arch/arm64/kernel/asm-offsets.c:10:
./include/linux/nodemask.h: In function '__first_node':
./include/linux/minmax.h:30:39: error: implicit declaration of function 'is_signed_type' [-Werror=implicit-function-declaration]
30 | __builtin_choose_expr(__is_constexpr(is_signed_type(typeof(x))), \
| ^~~~~~~~~~~~~~
./include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert'
78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
| ^~~~
./include/linux/minmax.h:50:3: note: in expansion of macro 'static_assert'
50 | static_assert(__types_ok(x, y), \
| ^~~~~~~~~~~~~
./include/linux/minmax.h:30:24: note: in expansion of macro '__is_constexpr'
30 | __builtin_choose_expr(__is_constexpr(is_signed_type(typeof(x))), \
| ^~~~~~~~~~~~~~
./include/linux/minmax.h:38:3: note: in expansion of macro '__is_signed'
38 | (__is_signed(x) == __is_signed(y) || \
| ^~~~~~~~~~~
./include/linux/minmax.h:50:17: note: in expansion of macro '__types_ok'
50 | static_assert(__types_ok(x, y), \
| ^~~~~~~~~~
./include/linux/minmax.h:57:3: note: in expansion of macro '__cmp_once'
57 | __cmp_once(op, x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y)))
| ^~~~~~~~~~
./include/linux/minmax.h:160:27: note: in expansion of macro '__careful_cmp'
160 | #define min_t(type, x, y) __careful_cmp(min, (type)(x), (type)(y))
| ^~~~~~~~~~~~~
./include/linux/nodemask.h:265:9: note: in expansion of macro 'min_t'
265 | return min_t(unsigned int, MAX_NUMNODES, find_first_bit(srcp->bits, MAX_NUMNODES));
| ^~~~~
./include/linux/minmax.h:30:54: error: expected expression before 'typeof'
30 | __builtin_choose_expr(__is_constexpr(is_signed_type(typeof(x))), \
| ^~~~~~
./include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert'
...


> > Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> (cherry
> > picked from commit a49a64b5bf195381c09202c524f0f84b5f3e816f)
>
> This is not a valid git id in the tree at all.

I will fix the mismatch here and above, but please notice that this
hash appears in the link I shared.

---
Regards, Eliav