diff options
| author | Karl Mehltretter <kmehltretter@gmail.com> | 2026-09-26 21:13:25 +0200 |
|---|---|---|
| committer | Will Deacon <will@kernel.org> | 2026-10-07 09:39:11 +0000 |
| commit | a9cd14bfb0c113f1cd77be4349784663bec71bb4 (patch) | |
| tree | 4828dcacf8ee6cfcf26c81359eec46f5f5a29268 /include | |
| parent | b52ef450139f5632d7e53e6fd5f5ec46c7029dac (diff) | |
arm64: irq: exclude the softirq stack switch from KCOV
On IRQ exit, __irq_exit_rcu() drops HARDIRQ_OFFSET before calling
invoke_softirq(). The arm64 do_softirq_own_stack() wrapper and its
____do_softirq() trampoline run before __do_softirq() establishes
softirq context, so KCOV records their PCs in the interrupted task's
coverage buffer. They also run outside softirq accounting when
local_bh_enable() reaches do_softirq().
The IRQ-exit coverage makes the KCOV boot selftest fail even after
the scheduler and timer coverage leaks are suppressed. The generic
softirq.o is already excluded from KCOV, but that exclusion does not
cover the separately compiled arm64 wrappers.
Exclude irq.o from KCOV instrumentation, as is already done for the
arm64 entry code. This covers both wrappers even with compilers that
lack the no_sanitize_coverage attribute. The softirq action functions
remain instrumented for explicit remote coverage.
Fixes: 8eb858c44b98 ("arm64: run softirqs on the per-CPU IRQ stack")
Cc: stable@vger.kernel.org
Assisted-by: LLM
Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com>
Signed-off-by: Will Deacon <will@kernel.org>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions
