diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2024-05-29 15:41:56 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2024-06-08 10:33:38 +0200 |
commit | 8aa76496dfaac0d7b0dd34793359680c90d9aea0 (patch) | |
tree | 73c7b2c20e9f2e3148dc7f7dfbed854fdc540040 /python/scripts | |
parent | 57f8dbdbe94a502301f51809e8b282b02df43370 (diff) | |
download | qemu-8aa76496dfaac0d7b0dd34793359680c90d9aea0.zip qemu-8aa76496dfaac0d7b0dd34793359680c90d9aea0.tar.gz qemu-8aa76496dfaac0d7b0dd34793359680c90d9aea0.tar.bz2 |
target/i386: disable/enable breakpoints on vmentry/vmexit
If the required DR7 (either from the VMCB or from the host save
area) disables a breakpoint that was enabled prior to vmentry
or vmexit, it is left enabled and will trigger EXCP_DEBUG.
This causes a spurious #DB on the next crossing of the breakpoint.
To disable it, vmentry/vmexit must use cpu_x86_update_dr7
to load DR7.
Because cpu_x86_update_dr7 takes a 32-bit argument, check
reserved bits prior to calling cpu_x86_update_dr7, and do the
same for DR6 as well for consistency.
This scenario is tested by the "host_rflags" test in kvm-unit-tests.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'python/scripts')
0 files changed, 0 insertions, 0 deletions