diff options
| author | Tengda Wu <wutengda@huaweicloud.com> | 2026-10-20 13:45:05 +0000 |
|---|---|---|
| committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2026-10-22 17:17:01 -0300 |
| commit | aa2cd2e19c81f8a84bafbedad3ae7d16882a353a (patch) | |
| tree | aba6bc99a9df87d71810df9fc258dbe464e2cb1d /scripts/Makefile.thinlto | |
| parent | f6455a6e200d4125e80e527ad6a805523f846400 (diff) | |
| download | linux-aa2cd2e19c81f8a84bafbedad3ae7d16882a353a.tar.gz linux-aa2cd2e19c81f8a84bafbedad3ae7d16882a353a.zip | |
perf annotate-x86: Delete stale stack state on store of untracked register
When a register without a tracked type is stored to a stack slot that
previously held a valid type, the code currently performs an early return.
This leaves the old type information intact in the stack state.
As a result, a stale type bug occurs:
1. A tracked register is stored into a stack slot.
2. The register becomes untracked/invalid (e.g., across a function call).
3. The now-untracked register is stored into the same stack slot.
4. Subsequent loads from that slot erroneously pick up the old stale type
because the stack entry was never invalidated.
Fix this by introducing delete_stack_state() to search and free a stack
entry for a given offset. When storing an untracked or invalid source
register into a stack location, call delete_stack_state() to delete the
stale entry before returning.
Reviewed-by: Ian Rogers <irogers@google.com>
Reviewed-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Tengda Wu <wutengda@huaweicloud.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'scripts/Makefile.thinlto')
0 files changed, 0 insertions, 0 deletions
