All of lore.kernel.org
 help / color / mirror / Atom feed
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.