/kernel/linux/linux-5.10/arch/x86/kernel/ |
H A D | traps.c | 815 unsigned long dr6; in debug_read_clear_dr6() local 828 get_debugreg(dr6, 6); in debug_read_clear_dr6() 830 dr6 ^= DR6_RESERVED; /* Flip to positive polarity */ in debug_read_clear_dr6() 832 return dr6; in debug_read_clear_dr6() 860 static bool notify_debug(struct pt_regs *regs, unsigned long *dr6) in notify_debug() argument 863 * Notifiers will clear bits in @dr6 to indicate the event has been in notify_debug() 869 if (notify_die(DIE_DEBUG, "debug", regs, (long)dr6, 0, SIGTRAP) == NOTIFY_STOP) in notify_debug() 876 unsigned long dr6) in exc_debug_kernel() 917 if ((dr6 & DR_STEP) && is_sysenter_singlestep(regs)) in exc_debug_kernel() 918 dr6 in exc_debug_kernel() 875 exc_debug_kernel(struct pt_regs *regs, unsigned long dr6) exc_debug_kernel() argument 949 exc_debug_user(struct pt_regs *regs, unsigned long dr6) exc_debug_user() argument 1034 unsigned long dr6 = debug_read_clear_dr6(); DEFINE_IDTENTRY_RAW() local [all...] |
H A D | hw_breakpoint.c | 515 unsigned long dr6; in hw_breakpoint_handler() local 520 dr6 = *dr6_p; in hw_breakpoint_handler() 523 if ((dr6 & DR_TRAP_BITS) == 0) in hw_breakpoint_handler() 528 if (likely(!(dr6 & (DR_TRAP0 << i)))) in hw_breakpoint_handler() 546 if (bpx && (dr6 & DR_STEP)) in hw_breakpoint_handler() 550 * Reset the 'i'th TRAP bit in dr6 to denote completion of in hw_breakpoint_handler() 571 (dr6 & (~DR_TRAP_BITS))) in hw_breakpoint_handler()
|
/kernel/linux/linux-5.10/tools/testing/selftests/kvm/x86_64/ |
H A D | debug_regs.c | 116 run->debug.arch.dr6 == target_dr6, in main() 118 "(should be 0x%llx) dr6 0x%llx (should be 0x%llx)", in main() 121 run->debug.arch.dr6, target_dr6); in main() 139 run->debug.arch.dr6 == target_dr6, in main() 141 "(should be 0x%llx) dr6 0x%llx (should be 0x%llx)", in main() 144 run->debug.arch.dr6, target_dr6); in main() 165 run->debug.arch.dr6 == target_dr6, in main() 167 "(should be 0x%llx) dr6 0x%llx (should be 0x%llx)", in main() 169 run->debug.arch.pc, target_rip, run->debug.arch.dr6, in main() 183 run->debug.arch.dr6 in main() [all...] |
/kernel/linux/linux-6.6/tools/testing/selftests/kvm/x86_64/ |
H A D | debug_regs.c | 128 run->debug.arch.dr6 == target_dr6, in main() 130 "(should be 0x%llx) dr6 0x%llx (should be 0x%llx)", in main() 133 run->debug.arch.dr6, target_dr6); in main() 151 run->debug.arch.dr6 == target_dr6, in main() 153 "(should be 0x%llx) dr6 0x%llx (should be 0x%llx)", in main() 156 run->debug.arch.dr6, target_dr6); in main() 177 run->debug.arch.dr6 == target_dr6, in main() 179 "(should be 0x%llx) dr6 0x%llx (should be 0x%llx)", in main() 181 run->debug.arch.pc, target_rip, run->debug.arch.dr6, in main() 195 run->debug.arch.dr6 in main() [all...] |
/kernel/linux/linux-6.6/arch/x86/kernel/ |
H A D | traps.c | 877 unsigned long dr6; in debug_read_clear_dr6() local 890 get_debugreg(dr6, 6); in debug_read_clear_dr6() 892 dr6 ^= DR6_RESERVED; /* Flip to positive polarity */ in debug_read_clear_dr6() 894 return dr6; in debug_read_clear_dr6() 922 static bool notify_debug(struct pt_regs *regs, unsigned long *dr6) in notify_debug() argument 925 * Notifiers will clear bits in @dr6 to indicate the event has been in notify_debug() 931 if (notify_die(DIE_DEBUG, "debug", regs, (long)dr6, 0, SIGTRAP) == NOTIFY_STOP) in notify_debug() 938 unsigned long dr6) in exc_debug_kernel() 979 if ((dr6 & DR_STEP) && is_sysenter_singlestep(regs)) in exc_debug_kernel() 980 dr6 in exc_debug_kernel() 937 exc_debug_kernel(struct pt_regs *regs, unsigned long dr6) exc_debug_kernel() argument 1011 exc_debug_user(struct pt_regs *regs, unsigned long dr6) exc_debug_user() argument 1100 unsigned long dr6 = debug_read_clear_dr6(); DEFINE_IDTENTRY_RAW() local [all...] |
H A D | hw_breakpoint.c | 515 unsigned long dr6; in hw_breakpoint_handler() local 520 dr6 = *dr6_p; in hw_breakpoint_handler() 523 if ((dr6 & DR_TRAP_BITS) == 0) in hw_breakpoint_handler() 528 if (likely(!(dr6 & (DR_TRAP0 << i)))) in hw_breakpoint_handler() 546 if (bpx && (dr6 & DR_STEP)) in hw_breakpoint_handler() 550 * Reset the 'i'th TRAP bit in dr6 to denote completion of in hw_breakpoint_handler() 571 (dr6 & (~DR_TRAP_BITS))) in hw_breakpoint_handler()
|
/kernel/linux/linux-6.6/arch/x86/kvm/ |
H A D | smm.h | 60 u32 dr6; member 131 u64 dr6; member
|
H A D | smm.c | 53 CHECK_SMRAM32_OFFSET(dr6, 0xFFCC); in check_smram_offsets() 100 CHECK_SMRAM64_OFFSET(dr6, 0xFF68); in check_smram_offsets() 199 smram->dr6 = (u32)val; in enter_smm_save_state_32() 245 smram->dr6 = val; in enter_smm_save_state_64() 480 if (kvm_set_dr(vcpu, 6, smstate->dr6)) in rsm_load_state_32() 532 if (kvm_set_dr(vcpu, 6, smstate->dr6)) in rsm_load_state_64()
|
H A D | x86.c | 586 vcpu->arch.dr6 &= ~DR_TRAP_BITS; in kvm_deliver_exception_payload() 589 * dr6, three components need to be considered: active low in kvm_deliver_exception_payload() 593 * In the target guest dr6: in kvm_deliver_exception_payload() 603 vcpu->arch.dr6 |= DR6_ACTIVE_LOW; in kvm_deliver_exception_payload() 604 vcpu->arch.dr6 |= ex->payload; in kvm_deliver_exception_payload() 605 vcpu->arch.dr6 ^= ex->payload & DR6_ACTIVE_LOW; in kvm_deliver_exception_payload() 613 vcpu->arch.dr6 &= ~BIT(12); in kvm_deliver_exception_payload() 1387 vcpu->arch.dr6 = (val & DR6_VOLATILE) | kvm_dr6_fixed(vcpu); in kvm_set_dr() 1412 *val = vcpu->arch.dr6; in kvm_get_dr() 5367 dbgregs->dr6 in kvm_vcpu_ioctl_x86_get_debugregs() 8699 u32 dr6 = 0; kvm_vcpu_check_hw_bp() local 8795 u32 dr6 = kvm_vcpu_check_hw_bp(eip, 0, kvm_vcpu_check_code_breakpoint() local 8812 u32 dr6 = kvm_vcpu_check_hw_bp(eip, 0, kvm_vcpu_check_code_breakpoint() local [all...] |
/kernel/linux/linux-5.10/arch/x86/include/uapi/asm/ |
H A D | kvm.h | 275 __u64 dr6; member 354 __u64 dr6; member
|
/kernel/linux/linux-5.10/tools/arch/x86/include/uapi/asm/ |
H A D | kvm.h | 275 __u64 dr6; member 354 __u64 dr6; member
|
/kernel/linux/patches/linux-6.6/prebuilts/usr/include/asm-x86/asm/ |
H A D | kvm.h | 240 __u64 dr6; member 304 __u64 dr6; member
|
/kernel/linux/patches/linux-5.10/prebuilts/usr/include/asm-x86/asm/ |
H A D | kvm.h | 240 __u64 dr6; member 304 __u64 dr6; member
|
/kernel/linux/linux-5.10/tools/testing/selftests/kvm/lib/x86_64/ |
H A D | svm.c | 104 asm volatile ("mov %%dr6, %0" : "=r"(save->dr6) : : "memory"); in generic_svm_setup()
|
/kernel/linux/linux-6.6/tools/testing/selftests/kvm/lib/x86_64/ |
H A D | svm.c | 95 asm volatile ("mov %%dr6, %0" : "=r"(save->dr6) : : "memory"); in generic_svm_setup()
|
/kernel/linux/linux-6.6/arch/x86/kvm/svm/ |
H A D | nested.c | 288 if (CC(!kvm_dr6_valid(save->dr6)) || CC(!kvm_dr7_valid(save->dr7))) in __nested_vmcb_check_save() 392 to->dr6 = from->dr6; in __nested_copy_vmcb_save_to_cache() 587 svm->vcpu.arch.dr6 = svm->nested.save.dr6 | DR6_ACTIVE_LOW; in nested_vmcb02_prepare_save() 1011 vmcb12->save.dr6 = svm->vcpu.arch.dr6; in nested_svm_vmexit()
|
/kernel/linux/linux-6.6/arch/x86/include/uapi/asm/ |
H A D | kvm.h | 288 __u64 dr6; member 373 __u64 dr6; member
|
/kernel/linux/linux-6.6/tools/arch/x86/include/uapi/asm/ |
H A D | kvm.h | 288 __u64 dr6; member 373 __u64 dr6; member
|
/kernel/linux/linux-5.10/tools/testing/selftests/kvm/include/x86_64/ |
H A D | svm.h | 184 u64 dr6; member
|
/kernel/linux/linux-6.6/tools/testing/selftests/kvm/include/x86_64/ |
H A D | svm.h | 215 u64 dr6; member
|
/kernel/linux/linux-5.10/arch/x86/kvm/svm/ |
H A D | svm.c | 1191 save->dr6 = 0xffff0ff0; in init_vmcb() 1774 if (unlikely(value != vmcb->save.dr6)) { in svm_set_dr6() 1775 vmcb->save.dr6 = value; in svm_set_dr6() 1789 * We cannot reset svm->vmcb->save.dr6 to DR6_FIXED_1|DR6_RTM here, in svm_sync_dirty_debug_regs() 1792 vcpu->arch.dr6 = svm->vmcb->save.dr6; in svm_sync_dirty_debug_regs() 1837 u32 payload = (svm->vmcb->save.dr6 ^ DR6_RTM) & ~DR6_FIXED_1; in db_interception() 1851 kvm_run->debug.arch.dr6 = svm->vmcb->save.dr6; in db_interception() 3040 "dr6 in dump_vmcb() [all...] |
H A D | nested.c | 270 if (!kvm_dr6_valid(vmcb12->save.dr6) || !kvm_dr7_valid(vmcb12->save.dr7)) in nested_vmcb_check_save() 429 svm->vcpu.arch.dr6 = vmcb12->save.dr6; in nested_prepare_vmcb_save() 659 vmcb12->save.dr6 = svm->vcpu.arch.dr6; in nested_svm_vmexit()
|
/kernel/linux/linux-6.6/arch/x86/include/asm/ |
H A D | svm.h | 324 u64 dr6; member 381 u64 dr6; member
|
/kernel/linux/linux-5.10/arch/x86/kvm/ |
H A D | x86.c | 508 vcpu->arch.dr6 &= ~DR_TRAP_BITS; in kvm_deliver_exception_payload() 512 vcpu->arch.dr6 |= DR6_RTM; in kvm_deliver_exception_payload() 513 vcpu->arch.dr6 |= payload; in kvm_deliver_exception_payload() 522 vcpu->arch.dr6 ^= payload & DR6_RTM; in kvm_deliver_exception_payload() 530 vcpu->arch.dr6 &= ~BIT(12); in kvm_deliver_exception_payload() 1153 vcpu->arch.dr6 = (val & DR6_VOLATILE) | kvm_dr6_fixed(vcpu); in __kvm_set_dr() 1187 *val = vcpu->arch.dr6; in kvm_get_dr() 4173 * If userspace has set any breakpoints or watchpoints, dr6 is restored in kvm_arch_vcpu_put() 4174 * on every vmexit, but if not, we might have a stale dr6 from the in kvm_arch_vcpu_put() 4175 * guest. do_debug expects dr6 t in kvm_arch_vcpu_put() 7419 u32 dr6 = 0; kvm_vcpu_check_hw_bp() local 7475 u32 dr6 = kvm_vcpu_check_hw_bp(eip, 0, kvm_vcpu_check_code_breakpoint() local 7492 u32 dr6 = kvm_vcpu_check_hw_bp(eip, 0, kvm_vcpu_check_code_breakpoint() local [all...] |
/kernel/linux/linux-5.10/arch/x86/include/asm/ |
H A D | svm.h | 230 u64 dr6; member
|