lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <53CE1C10.8070400@redhat.com> Date: Tue, 22 Jul 2014 10:08:48 +0200 From: Paolo Bonzini <pbonzini@...hat.com> To: Nadav Amit <nadav.amit@...il.com>, Nadav Amit <namit@...technion.ac.il> CC: tglx@...utronix.de, mingo@...hat.com, hpa@...or.com, x86@...nel.org, gleb@...nel.org, linux-kernel@...r.kernel.org Subject: Re: [PATCH 2/7] KVM: x86: Function for determining exception type Il 21/07/2014 23:30, Nadav Amit ha scritto: > Few comments to see we are on the same page: > > On 7/21/14, 3:18 PM, Paolo Bonzini wrote: >> Il 21/07/2014 13:37, Nadav Amit ha scritto: >>> +int kvm_exception_type(unsigned int nr) >> >> The manual calls this the exception class. > Yes, but it also calls it exception "type" (see table 6-1 > "Protected-Mode Exceptions and Interrupts" on the SDM). > I called it exception type, since there is a function exception_class > that is used to handle nested exceptions. Ok. >>> + case VE_VECTOR: >>> + return EXCPT_FAULT; >>> + case DB_VECTOR: >>> + return EXCPT_FAULT_OR_TRAP; >> >> It is only a fault for instruction fetch breakpoints. You can modify >> kvm_vcpu_check_breakpoint to set RF, add a comment here that fault >> handling is done elsewhere, and return EXCPT_TRAP. > Unless I am mistaken, kvm_vcpu_check_breakpoint checks only for > instruction breakpoint. Since instruction breakpoint should not cause RF > to be set, this function should not be changed. You're right ("For any fault-class exception except a debug exception generated in response to an instruction breakpoint, the value pushed for RF is 1"). It's the debug exception handler that has to set RF (and then iretd/iretq will modify RF). > Anyhow, I would return EXCPT_TRAP on DB_VECTOR. Yeah, just add a comment that it can be a fault for instruction fetch breakpoints, but we treat it as a trap for the purposes of (not) setting RF. Alternatively, just rename the function to exception_sets_rf and return true/false. Paolo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists