[ Upstream commit a537c0da168a08b0b6a7f7bd9e75f4cc8d45ff57 ]
A perf build failure was reported by Thomas Voegtle on stable kernel
v6.6.120:
CC tests/sample-parsing.o
CC util/intel-pt-decoder/intel-pt-pkt-decoder.o
CC util/perf-regs-arch/perf_regs_csky.o
CC util/arm-spe-decoder/arm-spe-pkt-decoder.o
CC util/perf-regs-arch/perf_regs_loongarch.o
In file included from util/arm-spe-decoder/arm-spe-pkt-decoder.h:10,
from util/arm-spe-decoder/arm-spe-pkt-decoder.c:14:
/local/git/linux-stable-rc/tools/include/linux/bitfield.h: In function ‘le16_encode_bits’:
/local/git/linux-stable-rc/tools/include/linux/bitfield.h:166:31: error: implicit declaration of
function ‘cpu_to_le16’; did you mean ‘htole16’? [-Werror=implicit-function-declaration]
____MAKE_OP(le##size,u##size,cpu_to_le##size,le##size##_to_cpu) \
^~~~~~~~~
/local/git/linux-stable-rc/tools/include/linux/bitfield.h:149:9: note: in definition of macro
‘____MAKE_OP’
return to((v & field_mask(field)) * field_multiplier(field)); \
^~
/local/git/linux-stable-rc/tools/include/linux/bitfield.h:170:1: note: in expansion of macro
‘__MAKE_OP’
__MAKE_OP(16)
Fix this by including linux/kernel.h, which provides the required
definitions.
The issue was not found on the mainline due to the relevant C files have
included kernel.h. It'd be good to merge this change on mainline
as well for robustness.
Closes: https://lore.kernel.org/stable/3a44500b-d7c8-179f-61f6-e51cb50d3512@lio96.de/
Fixes:
|
||
|---|---|---|
| .. | ||
| sched | ||
| unaligned | ||
| align.h | ||
| args.h | ||
| arm-smccc.h | ||
| atomic.h | ||
| bitfield.h | ||
| bitmap.h | ||
| bitops.h | ||
| bits.h | ||
| btf_ids.h | ||
| bug.h | ||
| build_bug.h | ||
| cache.h | ||
| cfi_types.h | ||
| compiler-gcc.h | ||
| compiler.h | ||
| compiler_types.h | ||
| const.h | ||
| container_of.h | ||
| coresight-pmu.h | ||
| ctype.h | ||
| debugfs.h | ||
| delay.h | ||
| err.h | ||
| export.h | ||
| filter.h | ||
| find.h | ||
| ftrace.h | ||
| gfp.h | ||
| gfp_types.h | ||
| hash.h | ||
| hashtable.h | ||
| init.h | ||
| interrupt.h | ||
| interval_tree_generic.h | ||
| io.h | ||
| jhash.h | ||
| kallsyms.h | ||
| kasan-tags.h | ||
| kconfig.h | ||
| kern_levels.h | ||
| kernel.h | ||
| linkage.h | ||
| list.h | ||
| list_sort.h | ||
| log2.h | ||
| math.h | ||
| math64.h | ||
| mm.h | ||
| module.h | ||
| moduleparam.h | ||
| mutex.h | ||
| nmi.h | ||
| numa.h | ||
| objtool_types.h | ||
| overflow.h | ||
| panic.h | ||
| pci_ids.h | ||
| pfn.h | ||
| poison.h | ||
| prandom.h | ||
| rbtree.h | ||
| rbtree_augmented.h | ||
| rcu.h | ||
| refcount.h | ||
| ring_buffer.h | ||
| rwsem.h | ||
| seq_file.h | ||
| sizes.h | ||
| slab.h | ||
| spinlock.h | ||
| static_call_types.h | ||
| string.h | ||
| stringify.h | ||
| time64.h | ||
| types.h | ||
| unaligned.h | ||
| zalloc.h | ||