diff for duplicates of <87d0939r5t.fsf@vitty.brq.redhat.com> diff --git a/a/1.txt b/N1/1.txt index 7621de0..4d66d8c 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -228,7 +228,7 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > + highest_irr = kvm_x86_ops.sync_pir_to_irr(apic->vcpu); > else > highest_irr = apic_find_highest_irr(apic); -> if (highest_irr = -1 || (highest_irr & 0xF0) <= ppr) +> if (highest_irr == -1 || (highest_irr & 0xF0) <= ppr) > @@ -1063,7 +1063,7 @@ static int __apic_accept_irq(struct kvm_lapic *apic, int delivery_mode, > apic->regs + APIC_TMR); > } @@ -392,7 +392,7 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > @@ -4909,7 +4909,7 @@ kvm_calc_tdp_mmu_root_page_role(struct kvm_vcpu *vcpu, bool base_only) > union kvm_mmu_role role = kvm_calc_mmu_role_common(vcpu, base_only); > -> role.base.ad_disabled = (shadow_accessed_mask = 0); +> role.base.ad_disabled = (shadow_accessed_mask == 0); > - role.base.level = kvm_x86_ops->get_tdp_level(vcpu); > + role.base.level = kvm_x86_ops.get_tdp_level(vcpu); > role.base.direct = true; @@ -638,8 +638,10 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > vmx = to_vmx(vcpu); > - if (kvm_x86_ops->pmu_ops->is_valid_msr(vcpu, MSR_CORE_PERF_GLOBAL_CTRL)) { > + if (kvm_x86_ops.pmu_ops->is_valid_msr(vcpu, MSR_CORE_PERF_GLOBAL_CTRL)) { -> vmx->nested.msrs.entry_ctls_high |> VM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL; -> vmx->nested.msrs.exit_ctls_high |> diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c +> vmx->nested.msrs.entry_ctls_high |= +> VM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL; +> vmx->nested.msrs.exit_ctls_high |= +> diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c > index cfa9093bdc06..4bbe0d165a0c 100644 > --- a/arch/x86/kvm/vmx/vmx.c > +++ b/arch/x86/kvm/vmx/vmx.c @@ -943,7 +945,7 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > if (events->flags & KVM_VCPUEVENT_VALID_SIPI_VECTOR && > lapic_in_kernel(vcpu)) > @@ -4212,9 +4212,9 @@ static int kvm_vcpu_ioctl_enable_cap(struct kvm_vcpu *vcpu, -> return kvm_hv_activate_synic(vcpu, cap->cap = +> return kvm_hv_activate_synic(vcpu, cap->cap == > KVM_CAP_HYPERV_SYNIC2); > case KVM_CAP_HYPERV_ENLIGHTENED_VMCS: > - if (!kvm_x86_ops->nested_enable_evmcs) @@ -1093,16 +1095,16 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > gpa_t kvm_mmu_gva_to_gpa_read(struct kvm_vcpu *vcpu, gva_t gva, > struct x86_exception *exception) > { -> - u32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; -> + u32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; +> - u32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; +> + u32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; > return vcpu->arch.walk_mmu->gva_to_gpa(vcpu, gva, access, exception); > } > > gpa_t kvm_mmu_gva_to_gpa_fetch(struct kvm_vcpu *vcpu, gva_t gva, > struct x86_exception *exception) > { -> - u32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; -> + u32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; +> - u32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; +> + u32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; > access |= PFERR_FETCH_MASK; > return vcpu->arch.walk_mmu->gva_to_gpa(vcpu, gva, access, exception); > } @@ -1110,8 +1112,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > gpa_t kvm_mmu_gva_to_gpa_write(struct kvm_vcpu *vcpu, gva_t gva, > struct x86_exception *exception) > { -> - u32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; -> + u32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; +> - u32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; +> + u32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; > access |= PFERR_WRITE_MASK; > return vcpu->arch.walk_mmu->gva_to_gpa(vcpu, gva, access, exception); > } @@ -1119,8 +1121,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > struct x86_exception *exception) > { > struct kvm_vcpu *vcpu = emul_to_vcpu(ctxt); -> - u32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; -> + u32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; +> - u32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; +> + u32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; > unsigned offset; > int ret; > @@ -1128,8 +1130,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > gva_t addr, void *val, unsigned int bytes, > struct x86_exception *exception) > { -> - u32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; -> + u32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; +> - u32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; +> + u32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; > > /* > * FIXME: this should call handle_emulation_failure if X86EMUL_IO_NEEDED @@ -1137,8 +1139,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > struct kvm_vcpu *vcpu = emul_to_vcpu(ctxt); > u32 access = 0; > -> - if (!system && kvm_x86_ops->get_cpl(vcpu) = 3) -> + if (!system && kvm_x86_ops.get_cpl(vcpu) = 3) +> - if (!system && kvm_x86_ops->get_cpl(vcpu) == 3) +> + if (!system && kvm_x86_ops.get_cpl(vcpu) == 3) > access |= PFERR_USER_MASK; > > return kvm_read_guest_virt_helper(addr, val, bytes, vcpu, access, exception); @@ -1146,8 +1148,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > struct kvm_vcpu *vcpu = emul_to_vcpu(ctxt); > u32 access = PFERR_WRITE_MASK; > -> - if (!system && kvm_x86_ops->get_cpl(vcpu) = 3) -> + if (!system && kvm_x86_ops.get_cpl(vcpu) = 3) +> - if (!system && kvm_x86_ops->get_cpl(vcpu) == 3) +> + if (!system && kvm_x86_ops.get_cpl(vcpu) == 3) > access |= PFERR_USER_MASK; > > return kvm_write_guest_virt_helper(addr, val, bytes, vcpu, @@ -1155,8 +1157,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > gpa_t *gpa, struct x86_exception *exception, > bool write) > { -> - u32 access = ((kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0) -> + u32 access = ((kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0) +> - u32 access = ((kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0) +> + u32 access = ((kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0) > | (write ? PFERR_WRITE_MASK : 0); > > /* @@ -1269,8 +1271,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > > kvm_queue_exception(vcpu, UD_VECTOR); > -> - if (!is_guest_mode(vcpu) && kvm_x86_ops->get_cpl(vcpu) = 0) { -> + if (!is_guest_mode(vcpu) && kvm_x86_ops.get_cpl(vcpu) = 0) { +> - if (!is_guest_mode(vcpu) && kvm_x86_ops->get_cpl(vcpu) == 0) { +> + if (!is_guest_mode(vcpu) && kvm_x86_ops.get_cpl(vcpu) == 0) { > vcpu->run->exit_reason = KVM_EXIT_INTERNAL_ERROR; > vcpu->run->internal.suberror = KVM_INTERNAL_ERROR_EMULATION; > vcpu->run->internal.ndata = 0; @@ -1640,7 +1642,7 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > - kvm_x86_ops->sync_pir_to_irr(vcpu); > + kvm_x86_ops.sync_pir_to_irr(vcpu); > -> if (vcpu->mode = EXITING_GUEST_MODE || kvm_request_pending(vcpu) +> if (vcpu->mode == EXITING_GUEST_MODE || kvm_request_pending(vcpu) > || need_resched() || signal_pending(current)) { > @@ -8363,7 +8363,7 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu) > @@ -1696,8 +1698,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > static inline int vcpu_block(struct kvm *kvm, struct kvm_vcpu *vcpu) > { > if (!kvm_arch_vcpu_runnable(vcpu) && -> - (!kvm_x86_ops->pre_block || kvm_x86_ops->pre_block(vcpu) = 0)) { -> + (!kvm_x86_ops.pre_block || kvm_x86_ops.pre_block(vcpu) = 0)) { +> - (!kvm_x86_ops->pre_block || kvm_x86_ops->pre_block(vcpu) == 0)) { +> + (!kvm_x86_ops.pre_block || kvm_x86_ops.pre_block(vcpu) == 0)) { > srcu_read_unlock(&kvm->srcu, vcpu->srcu_idx); > kvm_vcpu_block(vcpu); > vcpu->srcu_idx = srcu_read_lock(&kvm->srcu); @@ -1718,7 +1720,7 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > + if (is_guest_mode(vcpu) && kvm_x86_ops.check_nested_events) > + kvm_x86_ops.check_nested_events(vcpu); > -> return (vcpu->arch.mp_state = KVM_MP_STATE_RUNNABLE && +> return (vcpu->arch.mp_state == KVM_MP_STATE_RUNNABLE && > !vcpu->arch.apf.halted); > @@ -8661,7 +8661,7 @@ static void kvm_load_guest_fpu(struct kvm_vcpu *vcpu) > @@ -1903,7 +1905,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > + if (kvm_x86_ops.slot_enable_log_dirty) { > + kvm_x86_ops.slot_enable_log_dirty(kvm, new); > } else { -> int level > kvm_dirty_log_manual_protect_and_init_set(kvm) ? +> int level = +> kvm_dirty_log_manual_protect_and_init_set(kvm) ? > @@ -10051,8 +10051,8 @@ static void kvm_mmu_slot_apply_flags(struct kvm *kvm, > kvm_mmu_slot_remove_write_access(kvm, new, level); > } @@ -1975,8 +1978,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > > if (!(vcpu->arch.apf.msr_val & KVM_ASYNC_PF_ENABLED) || > (vcpu->arch.apf.send_user_only && -> - kvm_x86_ops->get_cpl(vcpu) = 0)) -> + kvm_x86_ops.get_cpl(vcpu) = 0)) +> - kvm_x86_ops->get_cpl(vcpu) == 0)) +> + kvm_x86_ops.get_cpl(vcpu) == 0)) > return false; > > return true; @@ -2046,3 +2049,8 @@ KVM modules more than my own eyes) -- Vitaly + +_______________________________________________ +kvmarm mailing list +kvmarm@lists.cs.columbia.edu +https://lists.cs.columbia.edu/mailman/listinfo/kvmarm diff --git a/a/content_digest b/N1/content_digest index 5cb4b09..ff37e55 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -2,28 +2,25 @@ "ref\020200321202603.19355-7-sean.j.christopherson@intel.com\0" "From\0Vitaly Kuznetsov <vkuznets@redhat.com>\0" "Subject\0Re: [PATCH v3 6/9] KVM: x86: Copy kvm_x86_ops by value to eliminate layer of indirection\0" - "Date\0Mon, 23 Mar 2020 12:44:46 +0000\0" + "Date\0Mon, 23 Mar 2020 13:44:46 +0100\0" "To\0Sean Christopherson <sean.j.christopherson@intel.com>" " Paolo Bonzini <pbonzini@redhat.com>\0" - "Cc\0Paul Mackerras <paulus@ozlabs.org>" - Christian Borntraeger <borntraeger@de.ibm.com> + "Cc\0linux-arm-kernel@lists.infradead.org" + Wanpeng Li <wanpengli@tencent.com> Janosch Frank <frankja@linux.ibm.com> + kvm@vger.kernel.org David Hildenbrand <david@redhat.com> - Cornelia Huck <cohuck@redhat.com> - Sean Christopherson <sean.j.christopherson@intel.com> - Wanpeng Li <wanpengli@tencent.com> - Jim Mattson <jmattson@google.com> - Joerg Roedel <joro@8bytes.org> Marc Zyngier <maz@kernel.org> - James Morse <james.morse@arm.com> - Julien Thierry <julien.thierry.kdev@gmail.com> - Suzuki K Poulose <suzuki.poulose@arm.com> + Joerg Roedel <joro@8bytes.org> + Cornelia Huck <cohuck@redhat.com> linux-mips@vger.kernel.org - kvm@vger.kernel.org + Sean Christopherson <sean.j.christopherson@intel.com> + linux-kernel@vger.kernel.org + Paul Mackerras <paulus@ozlabs.org> + Christian Borntraeger <borntraeger@de.ibm.com> kvm-ppc@vger.kernel.org - linux-arm-kernel@lists.infradead.org kvmarm@lists.cs.columbia.edu - " linux-kernel@vger.kernel.org\0" + " Jim Mattson <jmattson@google.com>\0" "\00:1\0" "b\0" "Sean Christopherson <sean.j.christopherson@intel.com> writes:\n" @@ -256,7 +253,7 @@ "> +\t\thighest_irr = kvm_x86_ops.sync_pir_to_irr(apic->vcpu);\n" "> \telse\n" "> \t\thighest_irr = apic_find_highest_irr(apic);\n" - "> \tif (highest_irr = -1 || (highest_irr & 0xF0) <= ppr)\n" + "> \tif (highest_irr == -1 || (highest_irr & 0xF0) <= ppr)\n" "> @@ -1063,7 +1063,7 @@ static int __apic_accept_irq(struct kvm_lapic *apic, int delivery_mode,\n" "> \t\t\t\t\t\t apic->regs + APIC_TMR);\n" "> \t\t}\n" @@ -420,7 +417,7 @@ "> @@ -4909,7 +4909,7 @@ kvm_calc_tdp_mmu_root_page_role(struct kvm_vcpu *vcpu, bool base_only)\n" "> \tunion kvm_mmu_role role = kvm_calc_mmu_role_common(vcpu, base_only);\n" "> \n" - "> \trole.base.ad_disabled = (shadow_accessed_mask = 0);\n" + "> \trole.base.ad_disabled = (shadow_accessed_mask == 0);\n" "> -\trole.base.level = kvm_x86_ops->get_tdp_level(vcpu);\n" "> +\trole.base.level = kvm_x86_ops.get_tdp_level(vcpu);\n" "> \trole.base.direct = true;\n" @@ -666,8 +663,10 @@ "> \tvmx = to_vmx(vcpu);\n" "> -\tif (kvm_x86_ops->pmu_ops->is_valid_msr(vcpu, MSR_CORE_PERF_GLOBAL_CTRL)) {\n" "> +\tif (kvm_x86_ops.pmu_ops->is_valid_msr(vcpu, MSR_CORE_PERF_GLOBAL_CTRL)) {\n" - "> \t\tvmx->nested.msrs.entry_ctls_high |> \t\t\t\tVM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL;\n" - "> \t\tvmx->nested.msrs.exit_ctls_high |> diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c\n" + "> \t\tvmx->nested.msrs.entry_ctls_high |=\n" + "> \t\t\t\tVM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL;\n" + "> \t\tvmx->nested.msrs.exit_ctls_high |=\n" + "> diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c\n" "> index cfa9093bdc06..4bbe0d165a0c 100644\n" "> --- a/arch/x86/kvm/vmx/vmx.c\n" "> +++ b/arch/x86/kvm/vmx/vmx.c\n" @@ -971,7 +970,7 @@ "> \tif (events->flags & KVM_VCPUEVENT_VALID_SIPI_VECTOR &&\n" "> \t lapic_in_kernel(vcpu))\n" "> @@ -4212,9 +4212,9 @@ static int kvm_vcpu_ioctl_enable_cap(struct kvm_vcpu *vcpu,\n" - "> \t\treturn kvm_hv_activate_synic(vcpu, cap->cap =\n" + "> \t\treturn kvm_hv_activate_synic(vcpu, cap->cap ==\n" "> \t\t\t\t\t KVM_CAP_HYPERV_SYNIC2);\n" "> \tcase KVM_CAP_HYPERV_ENLIGHTENED_VMCS:\n" "> -\t\tif (!kvm_x86_ops->nested_enable_evmcs)\n" @@ -1121,16 +1120,16 @@ "> gpa_t kvm_mmu_gva_to_gpa_read(struct kvm_vcpu *vcpu, gva_t gva,\n" "> \t\t\t struct x86_exception *exception)\n" "> {\n" - "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" - "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" + "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" + "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" "> \treturn vcpu->arch.walk_mmu->gva_to_gpa(vcpu, gva, access, exception);\n" "> }\n" "> \n" "> gpa_t kvm_mmu_gva_to_gpa_fetch(struct kvm_vcpu *vcpu, gva_t gva,\n" "> \t\t\t\tstruct x86_exception *exception)\n" "> {\n" - "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" - "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" + "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" + "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" "> \taccess |= PFERR_FETCH_MASK;\n" "> \treturn vcpu->arch.walk_mmu->gva_to_gpa(vcpu, gva, access, exception);\n" "> }\n" @@ -1138,8 +1137,8 @@ "> gpa_t kvm_mmu_gva_to_gpa_write(struct kvm_vcpu *vcpu, gva_t gva,\n" "> \t\t\t struct x86_exception *exception)\n" "> {\n" - "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" - "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" + "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" + "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" "> \taccess |= PFERR_WRITE_MASK;\n" "> \treturn vcpu->arch.walk_mmu->gva_to_gpa(vcpu, gva, access, exception);\n" "> }\n" @@ -1147,8 +1146,8 @@ "> \t\t\t\tstruct x86_exception *exception)\n" "> {\n" "> \tstruct kvm_vcpu *vcpu = emul_to_vcpu(ctxt);\n" - "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" - "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" + "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" + "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" "> \tunsigned offset;\n" "> \tint ret;\n" "> \n" @@ -1156,8 +1155,8 @@ "> \t\t\t gva_t addr, void *val, unsigned int bytes,\n" "> \t\t\t struct x86_exception *exception)\n" "> {\n" - "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" - "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" + "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" + "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" "> \n" "> \t/*\n" "> \t * FIXME: this should call handle_emulation_failure if X86EMUL_IO_NEEDED\n" @@ -1165,8 +1164,8 @@ "> \tstruct kvm_vcpu *vcpu = emul_to_vcpu(ctxt);\n" "> \tu32 access = 0;\n" "> \n" - "> -\tif (!system && kvm_x86_ops->get_cpl(vcpu) = 3)\n" - "> +\tif (!system && kvm_x86_ops.get_cpl(vcpu) = 3)\n" + "> -\tif (!system && kvm_x86_ops->get_cpl(vcpu) == 3)\n" + "> +\tif (!system && kvm_x86_ops.get_cpl(vcpu) == 3)\n" "> \t\taccess |= PFERR_USER_MASK;\n" "> \n" "> \treturn kvm_read_guest_virt_helper(addr, val, bytes, vcpu, access, exception);\n" @@ -1174,8 +1173,8 @@ "> \tstruct kvm_vcpu *vcpu = emul_to_vcpu(ctxt);\n" "> \tu32 access = PFERR_WRITE_MASK;\n" "> \n" - "> -\tif (!system && kvm_x86_ops->get_cpl(vcpu) = 3)\n" - "> +\tif (!system && kvm_x86_ops.get_cpl(vcpu) = 3)\n" + "> -\tif (!system && kvm_x86_ops->get_cpl(vcpu) == 3)\n" + "> +\tif (!system && kvm_x86_ops.get_cpl(vcpu) == 3)\n" "> \t\taccess |= PFERR_USER_MASK;\n" "> \n" "> \treturn kvm_write_guest_virt_helper(addr, val, bytes, vcpu,\n" @@ -1183,8 +1182,8 @@ "> \t\t\t\tgpa_t *gpa, struct x86_exception *exception,\n" "> \t\t\t\tbool write)\n" "> {\n" - "> -\tu32 access = ((kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0)\n" - "> +\tu32 access = ((kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0)\n" + "> -\tu32 access = ((kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0)\n" + "> +\tu32 access = ((kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0)\n" "> \t\t| (write ? PFERR_WRITE_MASK : 0);\n" "> \n" "> \t/*\n" @@ -1297,8 +1296,8 @@ "> \n" "> \tkvm_queue_exception(vcpu, UD_VECTOR);\n" "> \n" - "> -\tif (!is_guest_mode(vcpu) && kvm_x86_ops->get_cpl(vcpu) = 0) {\n" - "> +\tif (!is_guest_mode(vcpu) && kvm_x86_ops.get_cpl(vcpu) = 0) {\n" + "> -\tif (!is_guest_mode(vcpu) && kvm_x86_ops->get_cpl(vcpu) == 0) {\n" + "> +\tif (!is_guest_mode(vcpu) && kvm_x86_ops.get_cpl(vcpu) == 0) {\n" "> \t\tvcpu->run->exit_reason = KVM_EXIT_INTERNAL_ERROR;\n" "> \t\tvcpu->run->internal.suberror = KVM_INTERNAL_ERROR_EMULATION;\n" "> \t\tvcpu->run->internal.ndata = 0;\n" @@ -1668,7 +1667,7 @@ "> -\t\tkvm_x86_ops->sync_pir_to_irr(vcpu);\n" "> +\t\tkvm_x86_ops.sync_pir_to_irr(vcpu);\n" "> \n" - "> \tif (vcpu->mode = EXITING_GUEST_MODE || kvm_request_pending(vcpu)\n" + "> \tif (vcpu->mode == EXITING_GUEST_MODE || kvm_request_pending(vcpu)\n" "> \t || need_resched() || signal_pending(current)) {\n" "> @@ -8363,7 +8363,7 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu)\n" "> \n" @@ -1724,8 +1723,8 @@ "> static inline int vcpu_block(struct kvm *kvm, struct kvm_vcpu *vcpu)\n" "> {\n" "> \tif (!kvm_arch_vcpu_runnable(vcpu) &&\n" - "> -\t (!kvm_x86_ops->pre_block || kvm_x86_ops->pre_block(vcpu) = 0)) {\n" - "> +\t (!kvm_x86_ops.pre_block || kvm_x86_ops.pre_block(vcpu) = 0)) {\n" + "> -\t (!kvm_x86_ops->pre_block || kvm_x86_ops->pre_block(vcpu) == 0)) {\n" + "> +\t (!kvm_x86_ops.pre_block || kvm_x86_ops.pre_block(vcpu) == 0)) {\n" "> \t\tsrcu_read_unlock(&kvm->srcu, vcpu->srcu_idx);\n" "> \t\tkvm_vcpu_block(vcpu);\n" "> \t\tvcpu->srcu_idx = srcu_read_lock(&kvm->srcu);\n" @@ -1746,7 +1745,7 @@ "> +\tif (is_guest_mode(vcpu) && kvm_x86_ops.check_nested_events)\n" "> +\t\tkvm_x86_ops.check_nested_events(vcpu);\n" "> \n" - "> \treturn (vcpu->arch.mp_state = KVM_MP_STATE_RUNNABLE &&\n" + "> \treturn (vcpu->arch.mp_state == KVM_MP_STATE_RUNNABLE &&\n" "> \t\t!vcpu->arch.apf.halted);\n" "> @@ -8661,7 +8661,7 @@ static void kvm_load_guest_fpu(struct kvm_vcpu *vcpu)\n" "> \n" @@ -1931,7 +1930,8 @@ "> +\t\tif (kvm_x86_ops.slot_enable_log_dirty) {\n" "> +\t\t\tkvm_x86_ops.slot_enable_log_dirty(kvm, new);\n" "> \t\t} else {\n" - "> \t\t\tint level > \t\t\t\tkvm_dirty_log_manual_protect_and_init_set(kvm) ?\n" + "> \t\t\tint level =\n" + "> \t\t\t\tkvm_dirty_log_manual_protect_and_init_set(kvm) ?\n" "> @@ -10051,8 +10051,8 @@ static void kvm_mmu_slot_apply_flags(struct kvm *kvm,\n" "> \t\t\tkvm_mmu_slot_remove_write_access(kvm, new, level);\n" "> \t\t}\n" @@ -2003,8 +2003,8 @@ "> \n" "> \tif (!(vcpu->arch.apf.msr_val & KVM_ASYNC_PF_ENABLED) ||\n" "> \t (vcpu->arch.apf.send_user_only &&\n" - "> -\t kvm_x86_ops->get_cpl(vcpu) = 0))\n" - "> +\t kvm_x86_ops.get_cpl(vcpu) = 0))\n" + "> -\t kvm_x86_ops->get_cpl(vcpu) == 0))\n" + "> +\t kvm_x86_ops.get_cpl(vcpu) == 0))\n" "> \t\treturn false;\n" "> \n" "> \treturn true;\n" @@ -2073,6 +2073,11 @@ "KVM modules more than my own eyes)\n" "\n" "-- \n" - Vitaly + "Vitaly\n" + "\n" + "_______________________________________________\n" + "kvmarm mailing list\n" + "kvmarm@lists.cs.columbia.edu\n" + https://lists.cs.columbia.edu/mailman/listinfo/kvmarm -f5a2941e567eb3f2ddadfda9728a940bb4d8846aa004c2eb1134b1a5f0f95af1 +0e4ddff18ce4c29bb9e02f247e0771e089f5a6e2e89eb38d6fa81e6f4369c5b3
diff --git a/a/1.txt b/N2/1.txt index 7621de0..d570628 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -228,7 +228,7 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > + highest_irr = kvm_x86_ops.sync_pir_to_irr(apic->vcpu); > else > highest_irr = apic_find_highest_irr(apic); -> if (highest_irr = -1 || (highest_irr & 0xF0) <= ppr) +> if (highest_irr == -1 || (highest_irr & 0xF0) <= ppr) > @@ -1063,7 +1063,7 @@ static int __apic_accept_irq(struct kvm_lapic *apic, int delivery_mode, > apic->regs + APIC_TMR); > } @@ -392,7 +392,7 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > @@ -4909,7 +4909,7 @@ kvm_calc_tdp_mmu_root_page_role(struct kvm_vcpu *vcpu, bool base_only) > union kvm_mmu_role role = kvm_calc_mmu_role_common(vcpu, base_only); > -> role.base.ad_disabled = (shadow_accessed_mask = 0); +> role.base.ad_disabled = (shadow_accessed_mask == 0); > - role.base.level = kvm_x86_ops->get_tdp_level(vcpu); > + role.base.level = kvm_x86_ops.get_tdp_level(vcpu); > role.base.direct = true; @@ -638,8 +638,10 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > vmx = to_vmx(vcpu); > - if (kvm_x86_ops->pmu_ops->is_valid_msr(vcpu, MSR_CORE_PERF_GLOBAL_CTRL)) { > + if (kvm_x86_ops.pmu_ops->is_valid_msr(vcpu, MSR_CORE_PERF_GLOBAL_CTRL)) { -> vmx->nested.msrs.entry_ctls_high |> VM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL; -> vmx->nested.msrs.exit_ctls_high |> diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c +> vmx->nested.msrs.entry_ctls_high |= +> VM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL; +> vmx->nested.msrs.exit_ctls_high |= +> diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c > index cfa9093bdc06..4bbe0d165a0c 100644 > --- a/arch/x86/kvm/vmx/vmx.c > +++ b/arch/x86/kvm/vmx/vmx.c @@ -943,7 +945,7 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > if (events->flags & KVM_VCPUEVENT_VALID_SIPI_VECTOR && > lapic_in_kernel(vcpu)) > @@ -4212,9 +4212,9 @@ static int kvm_vcpu_ioctl_enable_cap(struct kvm_vcpu *vcpu, -> return kvm_hv_activate_synic(vcpu, cap->cap = +> return kvm_hv_activate_synic(vcpu, cap->cap == > KVM_CAP_HYPERV_SYNIC2); > case KVM_CAP_HYPERV_ENLIGHTENED_VMCS: > - if (!kvm_x86_ops->nested_enable_evmcs) @@ -1093,16 +1095,16 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > gpa_t kvm_mmu_gva_to_gpa_read(struct kvm_vcpu *vcpu, gva_t gva, > struct x86_exception *exception) > { -> - u32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; -> + u32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; +> - u32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; +> + u32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; > return vcpu->arch.walk_mmu->gva_to_gpa(vcpu, gva, access, exception); > } > > gpa_t kvm_mmu_gva_to_gpa_fetch(struct kvm_vcpu *vcpu, gva_t gva, > struct x86_exception *exception) > { -> - u32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; -> + u32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; +> - u32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; +> + u32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; > access |= PFERR_FETCH_MASK; > return vcpu->arch.walk_mmu->gva_to_gpa(vcpu, gva, access, exception); > } @@ -1110,8 +1112,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > gpa_t kvm_mmu_gva_to_gpa_write(struct kvm_vcpu *vcpu, gva_t gva, > struct x86_exception *exception) > { -> - u32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; -> + u32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; +> - u32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; +> + u32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; > access |= PFERR_WRITE_MASK; > return vcpu->arch.walk_mmu->gva_to_gpa(vcpu, gva, access, exception); > } @@ -1119,8 +1121,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > struct x86_exception *exception) > { > struct kvm_vcpu *vcpu = emul_to_vcpu(ctxt); -> - u32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; -> + u32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; +> - u32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; +> + u32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; > unsigned offset; > int ret; > @@ -1128,8 +1130,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > gva_t addr, void *val, unsigned int bytes, > struct x86_exception *exception) > { -> - u32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; -> + u32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; +> - u32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; +> + u32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; > > /* > * FIXME: this should call handle_emulation_failure if X86EMUL_IO_NEEDED @@ -1137,8 +1139,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > struct kvm_vcpu *vcpu = emul_to_vcpu(ctxt); > u32 access = 0; > -> - if (!system && kvm_x86_ops->get_cpl(vcpu) = 3) -> + if (!system && kvm_x86_ops.get_cpl(vcpu) = 3) +> - if (!system && kvm_x86_ops->get_cpl(vcpu) == 3) +> + if (!system && kvm_x86_ops.get_cpl(vcpu) == 3) > access |= PFERR_USER_MASK; > > return kvm_read_guest_virt_helper(addr, val, bytes, vcpu, access, exception); @@ -1146,8 +1148,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > struct kvm_vcpu *vcpu = emul_to_vcpu(ctxt); > u32 access = PFERR_WRITE_MASK; > -> - if (!system && kvm_x86_ops->get_cpl(vcpu) = 3) -> + if (!system && kvm_x86_ops.get_cpl(vcpu) = 3) +> - if (!system && kvm_x86_ops->get_cpl(vcpu) == 3) +> + if (!system && kvm_x86_ops.get_cpl(vcpu) == 3) > access |= PFERR_USER_MASK; > > return kvm_write_guest_virt_helper(addr, val, bytes, vcpu, @@ -1155,8 +1157,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > gpa_t *gpa, struct x86_exception *exception, > bool write) > { -> - u32 access = ((kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0) -> + u32 access = ((kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0) +> - u32 access = ((kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0) +> + u32 access = ((kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0) > | (write ? PFERR_WRITE_MASK : 0); > > /* @@ -1269,8 +1271,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > > kvm_queue_exception(vcpu, UD_VECTOR); > -> - if (!is_guest_mode(vcpu) && kvm_x86_ops->get_cpl(vcpu) = 0) { -> + if (!is_guest_mode(vcpu) && kvm_x86_ops.get_cpl(vcpu) = 0) { +> - if (!is_guest_mode(vcpu) && kvm_x86_ops->get_cpl(vcpu) == 0) { +> + if (!is_guest_mode(vcpu) && kvm_x86_ops.get_cpl(vcpu) == 0) { > vcpu->run->exit_reason = KVM_EXIT_INTERNAL_ERROR; > vcpu->run->internal.suberror = KVM_INTERNAL_ERROR_EMULATION; > vcpu->run->internal.ndata = 0; @@ -1640,7 +1642,7 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > - kvm_x86_ops->sync_pir_to_irr(vcpu); > + kvm_x86_ops.sync_pir_to_irr(vcpu); > -> if (vcpu->mode = EXITING_GUEST_MODE || kvm_request_pending(vcpu) +> if (vcpu->mode == EXITING_GUEST_MODE || kvm_request_pending(vcpu) > || need_resched() || signal_pending(current)) { > @@ -8363,7 +8363,7 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu) > @@ -1696,8 +1698,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > static inline int vcpu_block(struct kvm *kvm, struct kvm_vcpu *vcpu) > { > if (!kvm_arch_vcpu_runnable(vcpu) && -> - (!kvm_x86_ops->pre_block || kvm_x86_ops->pre_block(vcpu) = 0)) { -> + (!kvm_x86_ops.pre_block || kvm_x86_ops.pre_block(vcpu) = 0)) { +> - (!kvm_x86_ops->pre_block || kvm_x86_ops->pre_block(vcpu) == 0)) { +> + (!kvm_x86_ops.pre_block || kvm_x86_ops.pre_block(vcpu) == 0)) { > srcu_read_unlock(&kvm->srcu, vcpu->srcu_idx); > kvm_vcpu_block(vcpu); > vcpu->srcu_idx = srcu_read_lock(&kvm->srcu); @@ -1718,7 +1720,7 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > + if (is_guest_mode(vcpu) && kvm_x86_ops.check_nested_events) > + kvm_x86_ops.check_nested_events(vcpu); > -> return (vcpu->arch.mp_state = KVM_MP_STATE_RUNNABLE && +> return (vcpu->arch.mp_state == KVM_MP_STATE_RUNNABLE && > !vcpu->arch.apf.halted); > @@ -8661,7 +8661,7 @@ static void kvm_load_guest_fpu(struct kvm_vcpu *vcpu) > @@ -1903,7 +1905,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > + if (kvm_x86_ops.slot_enable_log_dirty) { > + kvm_x86_ops.slot_enable_log_dirty(kvm, new); > } else { -> int level > kvm_dirty_log_manual_protect_and_init_set(kvm) ? +> int level = +> kvm_dirty_log_manual_protect_and_init_set(kvm) ? > @@ -10051,8 +10051,8 @@ static void kvm_mmu_slot_apply_flags(struct kvm *kvm, > kvm_mmu_slot_remove_write_access(kvm, new, level); > } @@ -1975,8 +1978,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > > if (!(vcpu->arch.apf.msr_val & KVM_ASYNC_PF_ENABLED) || > (vcpu->arch.apf.send_user_only && -> - kvm_x86_ops->get_cpl(vcpu) = 0)) -> + kvm_x86_ops.get_cpl(vcpu) = 0)) +> - kvm_x86_ops->get_cpl(vcpu) == 0)) +> + kvm_x86_ops.get_cpl(vcpu) == 0)) > return false; > > return true; diff --git a/a/content_digest b/N2/content_digest index 5cb4b09..77138d7 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -2,7 +2,7 @@ "ref\020200321202603.19355-7-sean.j.christopherson@intel.com\0" "From\0Vitaly Kuznetsov <vkuznets@redhat.com>\0" "Subject\0Re: [PATCH v3 6/9] KVM: x86: Copy kvm_x86_ops by value to eliminate layer of indirection\0" - "Date\0Mon, 23 Mar 2020 12:44:46 +0000\0" + "Date\0Mon, 23 Mar 2020 13:44:46 +0100\0" "To\0Sean Christopherson <sean.j.christopherson@intel.com>" " Paolo Bonzini <pbonzini@redhat.com>\0" "Cc\0Paul Mackerras <paulus@ozlabs.org>" @@ -256,7 +256,7 @@ "> +\t\thighest_irr = kvm_x86_ops.sync_pir_to_irr(apic->vcpu);\n" "> \telse\n" "> \t\thighest_irr = apic_find_highest_irr(apic);\n" - "> \tif (highest_irr = -1 || (highest_irr & 0xF0) <= ppr)\n" + "> \tif (highest_irr == -1 || (highest_irr & 0xF0) <= ppr)\n" "> @@ -1063,7 +1063,7 @@ static int __apic_accept_irq(struct kvm_lapic *apic, int delivery_mode,\n" "> \t\t\t\t\t\t apic->regs + APIC_TMR);\n" "> \t\t}\n" @@ -420,7 +420,7 @@ "> @@ -4909,7 +4909,7 @@ kvm_calc_tdp_mmu_root_page_role(struct kvm_vcpu *vcpu, bool base_only)\n" "> \tunion kvm_mmu_role role = kvm_calc_mmu_role_common(vcpu, base_only);\n" "> \n" - "> \trole.base.ad_disabled = (shadow_accessed_mask = 0);\n" + "> \trole.base.ad_disabled = (shadow_accessed_mask == 0);\n" "> -\trole.base.level = kvm_x86_ops->get_tdp_level(vcpu);\n" "> +\trole.base.level = kvm_x86_ops.get_tdp_level(vcpu);\n" "> \trole.base.direct = true;\n" @@ -666,8 +666,10 @@ "> \tvmx = to_vmx(vcpu);\n" "> -\tif (kvm_x86_ops->pmu_ops->is_valid_msr(vcpu, MSR_CORE_PERF_GLOBAL_CTRL)) {\n" "> +\tif (kvm_x86_ops.pmu_ops->is_valid_msr(vcpu, MSR_CORE_PERF_GLOBAL_CTRL)) {\n" - "> \t\tvmx->nested.msrs.entry_ctls_high |> \t\t\t\tVM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL;\n" - "> \t\tvmx->nested.msrs.exit_ctls_high |> diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c\n" + "> \t\tvmx->nested.msrs.entry_ctls_high |=\n" + "> \t\t\t\tVM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL;\n" + "> \t\tvmx->nested.msrs.exit_ctls_high |=\n" + "> diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c\n" "> index cfa9093bdc06..4bbe0d165a0c 100644\n" "> --- a/arch/x86/kvm/vmx/vmx.c\n" "> +++ b/arch/x86/kvm/vmx/vmx.c\n" @@ -971,7 +973,7 @@ "> \tif (events->flags & KVM_VCPUEVENT_VALID_SIPI_VECTOR &&\n" "> \t lapic_in_kernel(vcpu))\n" "> @@ -4212,9 +4212,9 @@ static int kvm_vcpu_ioctl_enable_cap(struct kvm_vcpu *vcpu,\n" - "> \t\treturn kvm_hv_activate_synic(vcpu, cap->cap =\n" + "> \t\treturn kvm_hv_activate_synic(vcpu, cap->cap ==\n" "> \t\t\t\t\t KVM_CAP_HYPERV_SYNIC2);\n" "> \tcase KVM_CAP_HYPERV_ENLIGHTENED_VMCS:\n" "> -\t\tif (!kvm_x86_ops->nested_enable_evmcs)\n" @@ -1121,16 +1123,16 @@ "> gpa_t kvm_mmu_gva_to_gpa_read(struct kvm_vcpu *vcpu, gva_t gva,\n" "> \t\t\t struct x86_exception *exception)\n" "> {\n" - "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" - "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" + "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" + "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" "> \treturn vcpu->arch.walk_mmu->gva_to_gpa(vcpu, gva, access, exception);\n" "> }\n" "> \n" "> gpa_t kvm_mmu_gva_to_gpa_fetch(struct kvm_vcpu *vcpu, gva_t gva,\n" "> \t\t\t\tstruct x86_exception *exception)\n" "> {\n" - "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" - "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" + "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" + "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" "> \taccess |= PFERR_FETCH_MASK;\n" "> \treturn vcpu->arch.walk_mmu->gva_to_gpa(vcpu, gva, access, exception);\n" "> }\n" @@ -1138,8 +1140,8 @@ "> gpa_t kvm_mmu_gva_to_gpa_write(struct kvm_vcpu *vcpu, gva_t gva,\n" "> \t\t\t struct x86_exception *exception)\n" "> {\n" - "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" - "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" + "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" + "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" "> \taccess |= PFERR_WRITE_MASK;\n" "> \treturn vcpu->arch.walk_mmu->gva_to_gpa(vcpu, gva, access, exception);\n" "> }\n" @@ -1147,8 +1149,8 @@ "> \t\t\t\tstruct x86_exception *exception)\n" "> {\n" "> \tstruct kvm_vcpu *vcpu = emul_to_vcpu(ctxt);\n" - "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" - "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" + "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" + "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" "> \tunsigned offset;\n" "> \tint ret;\n" "> \n" @@ -1156,8 +1158,8 @@ "> \t\t\t gva_t addr, void *val, unsigned int bytes,\n" "> \t\t\t struct x86_exception *exception)\n" "> {\n" - "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" - "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" + "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" + "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" "> \n" "> \t/*\n" "> \t * FIXME: this should call handle_emulation_failure if X86EMUL_IO_NEEDED\n" @@ -1165,8 +1167,8 @@ "> \tstruct kvm_vcpu *vcpu = emul_to_vcpu(ctxt);\n" "> \tu32 access = 0;\n" "> \n" - "> -\tif (!system && kvm_x86_ops->get_cpl(vcpu) = 3)\n" - "> +\tif (!system && kvm_x86_ops.get_cpl(vcpu) = 3)\n" + "> -\tif (!system && kvm_x86_ops->get_cpl(vcpu) == 3)\n" + "> +\tif (!system && kvm_x86_ops.get_cpl(vcpu) == 3)\n" "> \t\taccess |= PFERR_USER_MASK;\n" "> \n" "> \treturn kvm_read_guest_virt_helper(addr, val, bytes, vcpu, access, exception);\n" @@ -1174,8 +1176,8 @@ "> \tstruct kvm_vcpu *vcpu = emul_to_vcpu(ctxt);\n" "> \tu32 access = PFERR_WRITE_MASK;\n" "> \n" - "> -\tif (!system && kvm_x86_ops->get_cpl(vcpu) = 3)\n" - "> +\tif (!system && kvm_x86_ops.get_cpl(vcpu) = 3)\n" + "> -\tif (!system && kvm_x86_ops->get_cpl(vcpu) == 3)\n" + "> +\tif (!system && kvm_x86_ops.get_cpl(vcpu) == 3)\n" "> \t\taccess |= PFERR_USER_MASK;\n" "> \n" "> \treturn kvm_write_guest_virt_helper(addr, val, bytes, vcpu,\n" @@ -1183,8 +1185,8 @@ "> \t\t\t\tgpa_t *gpa, struct x86_exception *exception,\n" "> \t\t\t\tbool write)\n" "> {\n" - "> -\tu32 access = ((kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0)\n" - "> +\tu32 access = ((kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0)\n" + "> -\tu32 access = ((kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0)\n" + "> +\tu32 access = ((kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0)\n" "> \t\t| (write ? PFERR_WRITE_MASK : 0);\n" "> \n" "> \t/*\n" @@ -1297,8 +1299,8 @@ "> \n" "> \tkvm_queue_exception(vcpu, UD_VECTOR);\n" "> \n" - "> -\tif (!is_guest_mode(vcpu) && kvm_x86_ops->get_cpl(vcpu) = 0) {\n" - "> +\tif (!is_guest_mode(vcpu) && kvm_x86_ops.get_cpl(vcpu) = 0) {\n" + "> -\tif (!is_guest_mode(vcpu) && kvm_x86_ops->get_cpl(vcpu) == 0) {\n" + "> +\tif (!is_guest_mode(vcpu) && kvm_x86_ops.get_cpl(vcpu) == 0) {\n" "> \t\tvcpu->run->exit_reason = KVM_EXIT_INTERNAL_ERROR;\n" "> \t\tvcpu->run->internal.suberror = KVM_INTERNAL_ERROR_EMULATION;\n" "> \t\tvcpu->run->internal.ndata = 0;\n" @@ -1668,7 +1670,7 @@ "> -\t\tkvm_x86_ops->sync_pir_to_irr(vcpu);\n" "> +\t\tkvm_x86_ops.sync_pir_to_irr(vcpu);\n" "> \n" - "> \tif (vcpu->mode = EXITING_GUEST_MODE || kvm_request_pending(vcpu)\n" + "> \tif (vcpu->mode == EXITING_GUEST_MODE || kvm_request_pending(vcpu)\n" "> \t || need_resched() || signal_pending(current)) {\n" "> @@ -8363,7 +8363,7 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu)\n" "> \n" @@ -1724,8 +1726,8 @@ "> static inline int vcpu_block(struct kvm *kvm, struct kvm_vcpu *vcpu)\n" "> {\n" "> \tif (!kvm_arch_vcpu_runnable(vcpu) &&\n" - "> -\t (!kvm_x86_ops->pre_block || kvm_x86_ops->pre_block(vcpu) = 0)) {\n" - "> +\t (!kvm_x86_ops.pre_block || kvm_x86_ops.pre_block(vcpu) = 0)) {\n" + "> -\t (!kvm_x86_ops->pre_block || kvm_x86_ops->pre_block(vcpu) == 0)) {\n" + "> +\t (!kvm_x86_ops.pre_block || kvm_x86_ops.pre_block(vcpu) == 0)) {\n" "> \t\tsrcu_read_unlock(&kvm->srcu, vcpu->srcu_idx);\n" "> \t\tkvm_vcpu_block(vcpu);\n" "> \t\tvcpu->srcu_idx = srcu_read_lock(&kvm->srcu);\n" @@ -1746,7 +1748,7 @@ "> +\tif (is_guest_mode(vcpu) && kvm_x86_ops.check_nested_events)\n" "> +\t\tkvm_x86_ops.check_nested_events(vcpu);\n" "> \n" - "> \treturn (vcpu->arch.mp_state = KVM_MP_STATE_RUNNABLE &&\n" + "> \treturn (vcpu->arch.mp_state == KVM_MP_STATE_RUNNABLE &&\n" "> \t\t!vcpu->arch.apf.halted);\n" "> @@ -8661,7 +8661,7 @@ static void kvm_load_guest_fpu(struct kvm_vcpu *vcpu)\n" "> \n" @@ -1931,7 +1933,8 @@ "> +\t\tif (kvm_x86_ops.slot_enable_log_dirty) {\n" "> +\t\t\tkvm_x86_ops.slot_enable_log_dirty(kvm, new);\n" "> \t\t} else {\n" - "> \t\t\tint level > \t\t\t\tkvm_dirty_log_manual_protect_and_init_set(kvm) ?\n" + "> \t\t\tint level =\n" + "> \t\t\t\tkvm_dirty_log_manual_protect_and_init_set(kvm) ?\n" "> @@ -10051,8 +10051,8 @@ static void kvm_mmu_slot_apply_flags(struct kvm *kvm,\n" "> \t\t\tkvm_mmu_slot_remove_write_access(kvm, new, level);\n" "> \t\t}\n" @@ -2003,8 +2006,8 @@ "> \n" "> \tif (!(vcpu->arch.apf.msr_val & KVM_ASYNC_PF_ENABLED) ||\n" "> \t (vcpu->arch.apf.send_user_only &&\n" - "> -\t kvm_x86_ops->get_cpl(vcpu) = 0))\n" - "> +\t kvm_x86_ops.get_cpl(vcpu) = 0))\n" + "> -\t kvm_x86_ops->get_cpl(vcpu) == 0))\n" + "> +\t kvm_x86_ops.get_cpl(vcpu) == 0))\n" "> \t\treturn false;\n" "> \n" "> \treturn true;\n" @@ -2075,4 +2078,4 @@ "-- \n" Vitaly -f5a2941e567eb3f2ddadfda9728a940bb4d8846aa004c2eb1134b1a5f0f95af1 +b4293f349b844852f3322c7cd50708a7850912a22ff6913b62583a0a47d13a01
diff --git a/a/1.txt b/N3/1.txt index 7621de0..c78e5fc 100644 --- a/a/1.txt +++ b/N3/1.txt @@ -228,7 +228,7 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > + highest_irr = kvm_x86_ops.sync_pir_to_irr(apic->vcpu); > else > highest_irr = apic_find_highest_irr(apic); -> if (highest_irr = -1 || (highest_irr & 0xF0) <= ppr) +> if (highest_irr == -1 || (highest_irr & 0xF0) <= ppr) > @@ -1063,7 +1063,7 @@ static int __apic_accept_irq(struct kvm_lapic *apic, int delivery_mode, > apic->regs + APIC_TMR); > } @@ -392,7 +392,7 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > @@ -4909,7 +4909,7 @@ kvm_calc_tdp_mmu_root_page_role(struct kvm_vcpu *vcpu, bool base_only) > union kvm_mmu_role role = kvm_calc_mmu_role_common(vcpu, base_only); > -> role.base.ad_disabled = (shadow_accessed_mask = 0); +> role.base.ad_disabled = (shadow_accessed_mask == 0); > - role.base.level = kvm_x86_ops->get_tdp_level(vcpu); > + role.base.level = kvm_x86_ops.get_tdp_level(vcpu); > role.base.direct = true; @@ -638,8 +638,10 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > vmx = to_vmx(vcpu); > - if (kvm_x86_ops->pmu_ops->is_valid_msr(vcpu, MSR_CORE_PERF_GLOBAL_CTRL)) { > + if (kvm_x86_ops.pmu_ops->is_valid_msr(vcpu, MSR_CORE_PERF_GLOBAL_CTRL)) { -> vmx->nested.msrs.entry_ctls_high |> VM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL; -> vmx->nested.msrs.exit_ctls_high |> diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c +> vmx->nested.msrs.entry_ctls_high |= +> VM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL; +> vmx->nested.msrs.exit_ctls_high |= +> diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c > index cfa9093bdc06..4bbe0d165a0c 100644 > --- a/arch/x86/kvm/vmx/vmx.c > +++ b/arch/x86/kvm/vmx/vmx.c @@ -943,7 +945,7 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > if (events->flags & KVM_VCPUEVENT_VALID_SIPI_VECTOR && > lapic_in_kernel(vcpu)) > @@ -4212,9 +4212,9 @@ static int kvm_vcpu_ioctl_enable_cap(struct kvm_vcpu *vcpu, -> return kvm_hv_activate_synic(vcpu, cap->cap = +> return kvm_hv_activate_synic(vcpu, cap->cap == > KVM_CAP_HYPERV_SYNIC2); > case KVM_CAP_HYPERV_ENLIGHTENED_VMCS: > - if (!kvm_x86_ops->nested_enable_evmcs) @@ -1093,16 +1095,16 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > gpa_t kvm_mmu_gva_to_gpa_read(struct kvm_vcpu *vcpu, gva_t gva, > struct x86_exception *exception) > { -> - u32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; -> + u32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; +> - u32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; +> + u32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; > return vcpu->arch.walk_mmu->gva_to_gpa(vcpu, gva, access, exception); > } > > gpa_t kvm_mmu_gva_to_gpa_fetch(struct kvm_vcpu *vcpu, gva_t gva, > struct x86_exception *exception) > { -> - u32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; -> + u32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; +> - u32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; +> + u32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; > access |= PFERR_FETCH_MASK; > return vcpu->arch.walk_mmu->gva_to_gpa(vcpu, gva, access, exception); > } @@ -1110,8 +1112,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > gpa_t kvm_mmu_gva_to_gpa_write(struct kvm_vcpu *vcpu, gva_t gva, > struct x86_exception *exception) > { -> - u32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; -> + u32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; +> - u32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; +> + u32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; > access |= PFERR_WRITE_MASK; > return vcpu->arch.walk_mmu->gva_to_gpa(vcpu, gva, access, exception); > } @@ -1119,8 +1121,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > struct x86_exception *exception) > { > struct kvm_vcpu *vcpu = emul_to_vcpu(ctxt); -> - u32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; -> + u32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; +> - u32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; +> + u32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; > unsigned offset; > int ret; > @@ -1128,8 +1130,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > gva_t addr, void *val, unsigned int bytes, > struct x86_exception *exception) > { -> - u32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; -> + u32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0; +> - u32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; +> + u32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; > > /* > * FIXME: this should call handle_emulation_failure if X86EMUL_IO_NEEDED @@ -1137,8 +1139,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > struct kvm_vcpu *vcpu = emul_to_vcpu(ctxt); > u32 access = 0; > -> - if (!system && kvm_x86_ops->get_cpl(vcpu) = 3) -> + if (!system && kvm_x86_ops.get_cpl(vcpu) = 3) +> - if (!system && kvm_x86_ops->get_cpl(vcpu) == 3) +> + if (!system && kvm_x86_ops.get_cpl(vcpu) == 3) > access |= PFERR_USER_MASK; > > return kvm_read_guest_virt_helper(addr, val, bytes, vcpu, access, exception); @@ -1146,8 +1148,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > struct kvm_vcpu *vcpu = emul_to_vcpu(ctxt); > u32 access = PFERR_WRITE_MASK; > -> - if (!system && kvm_x86_ops->get_cpl(vcpu) = 3) -> + if (!system && kvm_x86_ops.get_cpl(vcpu) = 3) +> - if (!system && kvm_x86_ops->get_cpl(vcpu) == 3) +> + if (!system && kvm_x86_ops.get_cpl(vcpu) == 3) > access |= PFERR_USER_MASK; > > return kvm_write_guest_virt_helper(addr, val, bytes, vcpu, @@ -1155,8 +1157,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > gpa_t *gpa, struct x86_exception *exception, > bool write) > { -> - u32 access = ((kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0) -> + u32 access = ((kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0) +> - u32 access = ((kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0) +> + u32 access = ((kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0) > | (write ? PFERR_WRITE_MASK : 0); > > /* @@ -1269,8 +1271,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > > kvm_queue_exception(vcpu, UD_VECTOR); > -> - if (!is_guest_mode(vcpu) && kvm_x86_ops->get_cpl(vcpu) = 0) { -> + if (!is_guest_mode(vcpu) && kvm_x86_ops.get_cpl(vcpu) = 0) { +> - if (!is_guest_mode(vcpu) && kvm_x86_ops->get_cpl(vcpu) == 0) { +> + if (!is_guest_mode(vcpu) && kvm_x86_ops.get_cpl(vcpu) == 0) { > vcpu->run->exit_reason = KVM_EXIT_INTERNAL_ERROR; > vcpu->run->internal.suberror = KVM_INTERNAL_ERROR_EMULATION; > vcpu->run->internal.ndata = 0; @@ -1640,7 +1642,7 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > - kvm_x86_ops->sync_pir_to_irr(vcpu); > + kvm_x86_ops.sync_pir_to_irr(vcpu); > -> if (vcpu->mode = EXITING_GUEST_MODE || kvm_request_pending(vcpu) +> if (vcpu->mode == EXITING_GUEST_MODE || kvm_request_pending(vcpu) > || need_resched() || signal_pending(current)) { > @@ -8363,7 +8363,7 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu) > @@ -1696,8 +1698,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > static inline int vcpu_block(struct kvm *kvm, struct kvm_vcpu *vcpu) > { > if (!kvm_arch_vcpu_runnable(vcpu) && -> - (!kvm_x86_ops->pre_block || kvm_x86_ops->pre_block(vcpu) = 0)) { -> + (!kvm_x86_ops.pre_block || kvm_x86_ops.pre_block(vcpu) = 0)) { +> - (!kvm_x86_ops->pre_block || kvm_x86_ops->pre_block(vcpu) == 0)) { +> + (!kvm_x86_ops.pre_block || kvm_x86_ops.pre_block(vcpu) == 0)) { > srcu_read_unlock(&kvm->srcu, vcpu->srcu_idx); > kvm_vcpu_block(vcpu); > vcpu->srcu_idx = srcu_read_lock(&kvm->srcu); @@ -1718,7 +1720,7 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > + if (is_guest_mode(vcpu) && kvm_x86_ops.check_nested_events) > + kvm_x86_ops.check_nested_events(vcpu); > -> return (vcpu->arch.mp_state = KVM_MP_STATE_RUNNABLE && +> return (vcpu->arch.mp_state == KVM_MP_STATE_RUNNABLE && > !vcpu->arch.apf.halted); > @@ -8661,7 +8661,7 @@ static void kvm_load_guest_fpu(struct kvm_vcpu *vcpu) > @@ -1903,7 +1905,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > + if (kvm_x86_ops.slot_enable_log_dirty) { > + kvm_x86_ops.slot_enable_log_dirty(kvm, new); > } else { -> int level > kvm_dirty_log_manual_protect_and_init_set(kvm) ? +> int level = +> kvm_dirty_log_manual_protect_and_init_set(kvm) ? > @@ -10051,8 +10051,8 @@ static void kvm_mmu_slot_apply_flags(struct kvm *kvm, > kvm_mmu_slot_remove_write_access(kvm, new, level); > } @@ -1975,8 +1978,8 @@ Sean Christopherson <sean.j.christopherson@intel.com> writes: > > if (!(vcpu->arch.apf.msr_val & KVM_ASYNC_PF_ENABLED) || > (vcpu->arch.apf.send_user_only && -> - kvm_x86_ops->get_cpl(vcpu) = 0)) -> + kvm_x86_ops.get_cpl(vcpu) = 0)) +> - kvm_x86_ops->get_cpl(vcpu) == 0)) +> + kvm_x86_ops.get_cpl(vcpu) == 0)) > return false; > > return true; @@ -2046,3 +2049,9 @@ KVM modules more than my own eyes) -- Vitaly + + +_______________________________________________ +linux-arm-kernel mailing list +linux-arm-kernel@lists.infradead.org +http://lists.infradead.org/mailman/listinfo/linux-arm-kernel diff --git a/a/content_digest b/N3/content_digest index 5cb4b09..1100e5b 100644 --- a/a/content_digest +++ b/N3/content_digest @@ -2,28 +2,28 @@ "ref\020200321202603.19355-7-sean.j.christopherson@intel.com\0" "From\0Vitaly Kuznetsov <vkuznets@redhat.com>\0" "Subject\0Re: [PATCH v3 6/9] KVM: x86: Copy kvm_x86_ops by value to eliminate layer of indirection\0" - "Date\0Mon, 23 Mar 2020 12:44:46 +0000\0" + "Date\0Mon, 23 Mar 2020 13:44:46 +0100\0" "To\0Sean Christopherson <sean.j.christopherson@intel.com>" " Paolo Bonzini <pbonzini@redhat.com>\0" - "Cc\0Paul Mackerras <paulus@ozlabs.org>" - Christian Borntraeger <borntraeger@de.ibm.com> + "Cc\0linux-arm-kernel@lists.infradead.org" + Wanpeng Li <wanpengli@tencent.com> Janosch Frank <frankja@linux.ibm.com> + kvm@vger.kernel.org David Hildenbrand <david@redhat.com> + Marc Zyngier <maz@kernel.org> + Joerg Roedel <joro@8bytes.org> Cornelia Huck <cohuck@redhat.com> + linux-mips@vger.kernel.org Sean Christopherson <sean.j.christopherson@intel.com> - Wanpeng Li <wanpengli@tencent.com> - Jim Mattson <jmattson@google.com> - Joerg Roedel <joro@8bytes.org> - Marc Zyngier <maz@kernel.org> + linux-kernel@vger.kernel.org + Paul Mackerras <paulus@ozlabs.org> + Christian Borntraeger <borntraeger@de.ibm.com> James Morse <james.morse@arm.com> - Julien Thierry <julien.thierry.kdev@gmail.com> - Suzuki K Poulose <suzuki.poulose@arm.com> - linux-mips@vger.kernel.org - kvm@vger.kernel.org kvm-ppc@vger.kernel.org - linux-arm-kernel@lists.infradead.org + Suzuki K Poulose <suzuki.poulose@arm.com> kvmarm@lists.cs.columbia.edu - " linux-kernel@vger.kernel.org\0" + Julien Thierry <julien.thierry.kdev@gmail.com> + " Jim Mattson <jmattson@google.com>\0" "\00:1\0" "b\0" "Sean Christopherson <sean.j.christopherson@intel.com> writes:\n" @@ -256,7 +256,7 @@ "> +\t\thighest_irr = kvm_x86_ops.sync_pir_to_irr(apic->vcpu);\n" "> \telse\n" "> \t\thighest_irr = apic_find_highest_irr(apic);\n" - "> \tif (highest_irr = -1 || (highest_irr & 0xF0) <= ppr)\n" + "> \tif (highest_irr == -1 || (highest_irr & 0xF0) <= ppr)\n" "> @@ -1063,7 +1063,7 @@ static int __apic_accept_irq(struct kvm_lapic *apic, int delivery_mode,\n" "> \t\t\t\t\t\t apic->regs + APIC_TMR);\n" "> \t\t}\n" @@ -420,7 +420,7 @@ "> @@ -4909,7 +4909,7 @@ kvm_calc_tdp_mmu_root_page_role(struct kvm_vcpu *vcpu, bool base_only)\n" "> \tunion kvm_mmu_role role = kvm_calc_mmu_role_common(vcpu, base_only);\n" "> \n" - "> \trole.base.ad_disabled = (shadow_accessed_mask = 0);\n" + "> \trole.base.ad_disabled = (shadow_accessed_mask == 0);\n" "> -\trole.base.level = kvm_x86_ops->get_tdp_level(vcpu);\n" "> +\trole.base.level = kvm_x86_ops.get_tdp_level(vcpu);\n" "> \trole.base.direct = true;\n" @@ -666,8 +666,10 @@ "> \tvmx = to_vmx(vcpu);\n" "> -\tif (kvm_x86_ops->pmu_ops->is_valid_msr(vcpu, MSR_CORE_PERF_GLOBAL_CTRL)) {\n" "> +\tif (kvm_x86_ops.pmu_ops->is_valid_msr(vcpu, MSR_CORE_PERF_GLOBAL_CTRL)) {\n" - "> \t\tvmx->nested.msrs.entry_ctls_high |> \t\t\t\tVM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL;\n" - "> \t\tvmx->nested.msrs.exit_ctls_high |> diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c\n" + "> \t\tvmx->nested.msrs.entry_ctls_high |=\n" + "> \t\t\t\tVM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL;\n" + "> \t\tvmx->nested.msrs.exit_ctls_high |=\n" + "> diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c\n" "> index cfa9093bdc06..4bbe0d165a0c 100644\n" "> --- a/arch/x86/kvm/vmx/vmx.c\n" "> +++ b/arch/x86/kvm/vmx/vmx.c\n" @@ -971,7 +973,7 @@ "> \tif (events->flags & KVM_VCPUEVENT_VALID_SIPI_VECTOR &&\n" "> \t lapic_in_kernel(vcpu))\n" "> @@ -4212,9 +4212,9 @@ static int kvm_vcpu_ioctl_enable_cap(struct kvm_vcpu *vcpu,\n" - "> \t\treturn kvm_hv_activate_synic(vcpu, cap->cap =\n" + "> \t\treturn kvm_hv_activate_synic(vcpu, cap->cap ==\n" "> \t\t\t\t\t KVM_CAP_HYPERV_SYNIC2);\n" "> \tcase KVM_CAP_HYPERV_ENLIGHTENED_VMCS:\n" "> -\t\tif (!kvm_x86_ops->nested_enable_evmcs)\n" @@ -1121,16 +1123,16 @@ "> gpa_t kvm_mmu_gva_to_gpa_read(struct kvm_vcpu *vcpu, gva_t gva,\n" "> \t\t\t struct x86_exception *exception)\n" "> {\n" - "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" - "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" + "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" + "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" "> \treturn vcpu->arch.walk_mmu->gva_to_gpa(vcpu, gva, access, exception);\n" "> }\n" "> \n" "> gpa_t kvm_mmu_gva_to_gpa_fetch(struct kvm_vcpu *vcpu, gva_t gva,\n" "> \t\t\t\tstruct x86_exception *exception)\n" "> {\n" - "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" - "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" + "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" + "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" "> \taccess |= PFERR_FETCH_MASK;\n" "> \treturn vcpu->arch.walk_mmu->gva_to_gpa(vcpu, gva, access, exception);\n" "> }\n" @@ -1138,8 +1140,8 @@ "> gpa_t kvm_mmu_gva_to_gpa_write(struct kvm_vcpu *vcpu, gva_t gva,\n" "> \t\t\t struct x86_exception *exception)\n" "> {\n" - "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" - "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" + "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" + "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" "> \taccess |= PFERR_WRITE_MASK;\n" "> \treturn vcpu->arch.walk_mmu->gva_to_gpa(vcpu, gva, access, exception);\n" "> }\n" @@ -1147,8 +1149,8 @@ "> \t\t\t\tstruct x86_exception *exception)\n" "> {\n" "> \tstruct kvm_vcpu *vcpu = emul_to_vcpu(ctxt);\n" - "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" - "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" + "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" + "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" "> \tunsigned offset;\n" "> \tint ret;\n" "> \n" @@ -1156,8 +1158,8 @@ "> \t\t\t gva_t addr, void *val, unsigned int bytes,\n" "> \t\t\t struct x86_exception *exception)\n" "> {\n" - "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" - "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0;\n" + "> -\tu32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" + "> +\tu32 access = (kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0;\n" "> \n" "> \t/*\n" "> \t * FIXME: this should call handle_emulation_failure if X86EMUL_IO_NEEDED\n" @@ -1165,8 +1167,8 @@ "> \tstruct kvm_vcpu *vcpu = emul_to_vcpu(ctxt);\n" "> \tu32 access = 0;\n" "> \n" - "> -\tif (!system && kvm_x86_ops->get_cpl(vcpu) = 3)\n" - "> +\tif (!system && kvm_x86_ops.get_cpl(vcpu) = 3)\n" + "> -\tif (!system && kvm_x86_ops->get_cpl(vcpu) == 3)\n" + "> +\tif (!system && kvm_x86_ops.get_cpl(vcpu) == 3)\n" "> \t\taccess |= PFERR_USER_MASK;\n" "> \n" "> \treturn kvm_read_guest_virt_helper(addr, val, bytes, vcpu, access, exception);\n" @@ -1174,8 +1176,8 @@ "> \tstruct kvm_vcpu *vcpu = emul_to_vcpu(ctxt);\n" "> \tu32 access = PFERR_WRITE_MASK;\n" "> \n" - "> -\tif (!system && kvm_x86_ops->get_cpl(vcpu) = 3)\n" - "> +\tif (!system && kvm_x86_ops.get_cpl(vcpu) = 3)\n" + "> -\tif (!system && kvm_x86_ops->get_cpl(vcpu) == 3)\n" + "> +\tif (!system && kvm_x86_ops.get_cpl(vcpu) == 3)\n" "> \t\taccess |= PFERR_USER_MASK;\n" "> \n" "> \treturn kvm_write_guest_virt_helper(addr, val, bytes, vcpu,\n" @@ -1183,8 +1185,8 @@ "> \t\t\t\tgpa_t *gpa, struct x86_exception *exception,\n" "> \t\t\t\tbool write)\n" "> {\n" - "> -\tu32 access = ((kvm_x86_ops->get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0)\n" - "> +\tu32 access = ((kvm_x86_ops.get_cpl(vcpu) = 3) ? PFERR_USER_MASK : 0)\n" + "> -\tu32 access = ((kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0)\n" + "> +\tu32 access = ((kvm_x86_ops.get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0)\n" "> \t\t| (write ? PFERR_WRITE_MASK : 0);\n" "> \n" "> \t/*\n" @@ -1297,8 +1299,8 @@ "> \n" "> \tkvm_queue_exception(vcpu, UD_VECTOR);\n" "> \n" - "> -\tif (!is_guest_mode(vcpu) && kvm_x86_ops->get_cpl(vcpu) = 0) {\n" - "> +\tif (!is_guest_mode(vcpu) && kvm_x86_ops.get_cpl(vcpu) = 0) {\n" + "> -\tif (!is_guest_mode(vcpu) && kvm_x86_ops->get_cpl(vcpu) == 0) {\n" + "> +\tif (!is_guest_mode(vcpu) && kvm_x86_ops.get_cpl(vcpu) == 0) {\n" "> \t\tvcpu->run->exit_reason = KVM_EXIT_INTERNAL_ERROR;\n" "> \t\tvcpu->run->internal.suberror = KVM_INTERNAL_ERROR_EMULATION;\n" "> \t\tvcpu->run->internal.ndata = 0;\n" @@ -1668,7 +1670,7 @@ "> -\t\tkvm_x86_ops->sync_pir_to_irr(vcpu);\n" "> +\t\tkvm_x86_ops.sync_pir_to_irr(vcpu);\n" "> \n" - "> \tif (vcpu->mode = EXITING_GUEST_MODE || kvm_request_pending(vcpu)\n" + "> \tif (vcpu->mode == EXITING_GUEST_MODE || kvm_request_pending(vcpu)\n" "> \t || need_resched() || signal_pending(current)) {\n" "> @@ -8363,7 +8363,7 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu)\n" "> \n" @@ -1724,8 +1726,8 @@ "> static inline int vcpu_block(struct kvm *kvm, struct kvm_vcpu *vcpu)\n" "> {\n" "> \tif (!kvm_arch_vcpu_runnable(vcpu) &&\n" - "> -\t (!kvm_x86_ops->pre_block || kvm_x86_ops->pre_block(vcpu) = 0)) {\n" - "> +\t (!kvm_x86_ops.pre_block || kvm_x86_ops.pre_block(vcpu) = 0)) {\n" + "> -\t (!kvm_x86_ops->pre_block || kvm_x86_ops->pre_block(vcpu) == 0)) {\n" + "> +\t (!kvm_x86_ops.pre_block || kvm_x86_ops.pre_block(vcpu) == 0)) {\n" "> \t\tsrcu_read_unlock(&kvm->srcu, vcpu->srcu_idx);\n" "> \t\tkvm_vcpu_block(vcpu);\n" "> \t\tvcpu->srcu_idx = srcu_read_lock(&kvm->srcu);\n" @@ -1746,7 +1748,7 @@ "> +\tif (is_guest_mode(vcpu) && kvm_x86_ops.check_nested_events)\n" "> +\t\tkvm_x86_ops.check_nested_events(vcpu);\n" "> \n" - "> \treturn (vcpu->arch.mp_state = KVM_MP_STATE_RUNNABLE &&\n" + "> \treturn (vcpu->arch.mp_state == KVM_MP_STATE_RUNNABLE &&\n" "> \t\t!vcpu->arch.apf.halted);\n" "> @@ -8661,7 +8661,7 @@ static void kvm_load_guest_fpu(struct kvm_vcpu *vcpu)\n" "> \n" @@ -1931,7 +1933,8 @@ "> +\t\tif (kvm_x86_ops.slot_enable_log_dirty) {\n" "> +\t\t\tkvm_x86_ops.slot_enable_log_dirty(kvm, new);\n" "> \t\t} else {\n" - "> \t\t\tint level > \t\t\t\tkvm_dirty_log_manual_protect_and_init_set(kvm) ?\n" + "> \t\t\tint level =\n" + "> \t\t\t\tkvm_dirty_log_manual_protect_and_init_set(kvm) ?\n" "> @@ -10051,8 +10051,8 @@ static void kvm_mmu_slot_apply_flags(struct kvm *kvm,\n" "> \t\t\tkvm_mmu_slot_remove_write_access(kvm, new, level);\n" "> \t\t}\n" @@ -2003,8 +2006,8 @@ "> \n" "> \tif (!(vcpu->arch.apf.msr_val & KVM_ASYNC_PF_ENABLED) ||\n" "> \t (vcpu->arch.apf.send_user_only &&\n" - "> -\t kvm_x86_ops->get_cpl(vcpu) = 0))\n" - "> +\t kvm_x86_ops.get_cpl(vcpu) = 0))\n" + "> -\t kvm_x86_ops->get_cpl(vcpu) == 0))\n" + "> +\t kvm_x86_ops.get_cpl(vcpu) == 0))\n" "> \t\treturn false;\n" "> \n" "> \treturn true;\n" @@ -2073,6 +2076,12 @@ "KVM modules more than my own eyes)\n" "\n" "-- \n" - Vitaly + "Vitaly\n" + "\n" + "\n" + "_______________________________________________\n" + "linux-arm-kernel mailing list\n" + "linux-arm-kernel@lists.infradead.org\n" + http://lists.infradead.org/mailman/listinfo/linux-arm-kernel -f5a2941e567eb3f2ddadfda9728a940bb4d8846aa004c2eb1134b1a5f0f95af1 +e2e464e63beab8f6ce69613ab4e3f7a8ab3deaa020702eb12989553766dfae4c
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.