diff options
| author | Sean Christopherson <seanjc@google.com> | 2026-09-30 12:36:23 -0700 |
|---|---|---|
| committer | Sean Christopherson <seanjc@google.com> | 2026-09-30 14:22:23 -0700 |
| commit | 719a1d58bf43edd03b271df90b67c58c1e9a7da4 (patch) | |
| tree | 08d37299def6539fdcd3f98162fa0a6cbe3a180a /tools/perf/scripts/python/stackcollapse.py | |
| parent | e70f812ccdd6f45b002ff054b0108bbf8db1c0ed (diff) | |
KVM: x86: Preserve DR6.BLD (Bus Lock Detect) when delivering #DB payload
Preserve Bus Lock Detect if it isn't present in the payload. Unlike RTM,
which is explicitly modified on every #DB, DR6.BLD is modified if and only
if the #DB is due to a (coincident) Bus Lock Detect.
Per Intel's SDM:
Other debug exceptions do not modify this bit.
And AMD's APM
All other #DB exceptions leave DR6[BLD] unmodified,
Restore the explicit RTM handling that was clobbered by commit
9a3ecd5e2aa1 ("KVM: X86: Rename DR6_INIT to DR6_ACTIVE_LOW"), as the
semantics of any given bit are feature specific, i.e. are obviously not
consistent for active-high versus active-low. In other words, while the
bug was technically introduced when support for Bus Lock Detect was added,
it's really that attempt to genericize handling of active-low bits that set
KVM up to fail.
Fixes: e8ea85fb280e ("KVM: X86: Add support for the emulation of DR6_BUS_LOCK bit")
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20260930193634.3415089-2-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
Diffstat (limited to 'tools/perf/scripts/python/stackcollapse.py')
0 files changed, 0 insertions, 0 deletions
