[GIT PULL] objtool fixes and updates

Ingo Molnar
2025-03-28T21:19:02Z

Linus,

Please pull the latest objtool/urgent Git tree from:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git objtool-urgent-2025-03-28

# HEAD: ae958b12940bcd4ffa32c44684e4f2878bc5e140 objtool, drm/vmwgfx: Don't ignore vmw_send_msg() for ORC

[ Merge note: not all driver fixes below have maintainer acks. ]

These are objtool fixes and updates centered around the fallout
from the new CONFIG_OBJTOOL_WERROR=y feature, which, despite its
default-off nature, increased the profile/impact of objtool warnings:

- Improve error handling and the presentation of warnings/errors.

- In particular reduce the verbosity of objtool warnings if a
function triggers a check already - it's unlikely that followup
warnings are useful after the first warning is triggered.

- Fix a number of objtool warnings in various drivers, core kernel
code and architecture code. About half of them are potential
problems related to out-of-bounds accesses or potential undefined
behavior, the other half are additional objtool annotations.

- Update objtool to latest (known) compiler quirks and
objtool bugs triggered by compiler code generation

Thanks,

Ingo

------------------>
Josh Poimboeuf (25):
objtool: Fix detection of consecutive jump tables on Clang 20
objtool: Warn when disabling unreachable warnings
objtool: Ignore entire functions rather than instructions
objtool: Fix X86_FEATURE_SMAP alternative handling
objtool: Fix CONFIG_OBJTOOL_WERROR for vmlinux.o
objtool: Fix init_module() handling
objtool: Silence more KCOV warnings
objtool: Properly disable uaccess validation
objtool: Improve error handling
objtool: Reduce CONFIG_OBJTOOL_WERROR verbosity
objtool: Fix up some outdated references to ENTRY/ENDPROC
objtool: Remove --no-unreachable for noinstr-only vmlinux.o runs
objtool: Remove redundant opts.noinstr dependency
objtool, spi: amd: Fix out-of-bounds stack access in amd_set_spi_freq()
objtool, nvmet: Fix out-of-bounds stack access in nvmet_ctrl_state_show()
objtool, media: dib8000: Prevent divide-by-zero in dib8000_set_dds()
objtool, panic: Disable SMAP in __stack_chk_fail()
objtool, Input: cyapa - Remove undefined behavior in cyapa_update_fw_store()
objtool, ASoC: codecs: wcd934x: Remove potential undefined behavior in wcd934x_slim_irq_handler()
objtool, regulator: rk808: Remove potential undefined behavior in rk806_set_mode_dcdc()
objtool, lkdtm: Obfuscate the do_nothing() pointer
objtool: Fix NULL printf() '%s' argument in builtin-check.c:save_argv()
objtool: Fix segfault in ignore_unreachable_insn()
objtool: Fix STACK_FRAME_NON_STANDARD for cold subfunctions
objtool, drm/vmwgfx: Don't ignore vmw_send_msg() for ORC

arch/x86/include/asm/arch_hweight.h | 6 +-
arch/x86/include/asm/smap.h | 23 +-
arch/x86/include/asm/xen/hypercall.h | 6 +-
drivers/gpu/drm/vmwgfx/vmwgfx_msg.c | 2 +-
drivers/input/mouse/cyapa.c | 4 +-
drivers/media/dvb-frontends/dib8000.c | 5 +-
drivers/misc/lkdtm/perms.c | 14 +-
drivers/nvme/target/debugfs.c | 2 +-
drivers/regulator/rk808-regulator.c | 4 +-
drivers/spi/spi-amd.c | 2 +-
include/linux/linkage.h | 4 -
include/linux/objtool.h | 2 +-
kernel/panic.c | 6 +
scripts/Makefile.lib | 2 +-
scripts/Makefile.vmlinux_o | 15 +-
sound/soc/codecs/wcd934x.c | 2 +-
tools/objtool/Documentation/objtool.txt | 10 +-
tools/objtool/arch/x86/special.c | 38 +--
tools/objtool/builtin-check.c | 146 +++++----
tools/objtool/check.c | 527 ++++++++++++++++----------------
tools/objtool/elf.c | 28 +-
tools/objtool/include/objtool/builtin.h | 6 +-
tools/objtool/include/objtool/check.h | 3 +-
tools/objtool/include/objtool/elf.h | 28 +-
tools/objtool/include/objtool/objtool.h | 2 +-
tools/objtool/include/objtool/special.h | 4 +-
tools/objtool/include/objtool/warn.h | 13 +-
tools/objtool/objtool.c | 11 +-
tools/objtool/special.c | 12 +-
29 files changed, 472 insertions(+), 455 deletions(-)