On Fri, Jan 24, 2020 at 2:22 PM Sean Christopherson <sean.j.christopherson@xxxxxxxxx> wrote: > > On Fri, Jan 24, 2020 at 01:48:07PM -0800, Jim Mattson wrote: > > On Fri, Jan 24, 2020 at 1:30 PM Sean Christopherson > > <sean.j.christopherson@xxxxxxxxx> wrote: > > > > > > On Fri, Jan 24, 2020 at 12:51:31PM -0800, Randy Dunlap wrote: > > > > On 1/23/20 10:33 PM, Stephen Rothwell wrote: > > > > > Hi all, > > > > > > > > > > Changes since 20200123: > > > > > > > > > > The kvm tree gained a conflict against Linus' tree. > > > > > > > > > > > > > on i386: > > > > > > > > ../arch/x86/kvm/x86.h:363:16: warning: right shift count >= width of type [-Wshift-count-overflow] > > > > > > Jim, > > > > > > This is due to using "unsigned long data" for kvm_dr7_valid() along with > > > "return !(data >> 32);" to check for bits being set in 63:32. Any > > > objection to fixing the issue by making @data a u64? Part of me thinks > > > that's the proper behavior anyways, i.e. the helper is purely a reflection > > > of the architectural requirements, the caller is responsible for dropping > > > bits appropriately based on the current mode. > > > > Why not just change that bad return statement to one of the > > alternatives you had suggested previously? > > Because it's not consistent with e.g. is_noncanonical_address() and I don't > like dropping bits 63:32 of vmcs12->guest_dr7 when kvm_dr7_valid() is called > from nested_vmx_check_guest_state(). KVM will eventually drop the bits > anyways when propagating vmcs12->guest_dr7 to vmcs02, but I'd prefer the > consistency check to not rely on that behavior. That makes sense. I keep forgetting that "natural_width" in kvm is duplicitous.