All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <87y2fawj4n.fsf@linux.ibm.com>

diff --git a/a/1.txt b/N1/1.txt
index fff75c3..88f2559 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -263,7 +263,7 @@ That would avoid having the C code knowing about scratch areas.
 >  	 */
 >  	case BOOK3S_INTERRUPT_H_DATA_STORAGE:
 >  		r = RESUME_PAGE_FAULT;
-> +		if (vcpu->arch.fault_dsisr = HDSISR_CANARY)
+> +		if (vcpu->arch.fault_dsisr == HDSISR_CANARY)
 > +			r = RESUME_GUEST; /* Just retry if it's the canary */
 >  		break;
 >  	case BOOK3S_INTERRUPT_H_INST_STORAGE:
@@ -274,9 +274,9 @@ That would avoid having the C code knowing about scratch areas.
 >  		mtspr(SPRN_PSSCR_PR, host_psscr);
 > -
 >  		/* H_CEDE has to be handled now, not later */
-> -		if (trap = BOOK3S_INTERRUPT_SYSCALL && !vcpu->arch.nested &&
-> +		if (trap = BOOK3S_INTERRUPT_SYSCALL &&
->  		    kvmppc_get_gpr(vcpu, 3) = H_CEDE) {
+> -		if (trap == BOOK3S_INTERRUPT_SYSCALL && !vcpu->arch.nested &&
+> +		if (trap == BOOK3S_INTERRUPT_SYSCALL &&
+>  		    kvmppc_get_gpr(vcpu, 3) == H_CEDE) {
 >  			kvmppc_cede(vcpu);
 >  			kvmppc_set_gpr(vcpu, 3, 0);
 >  			trap = 0;
@@ -301,12 +301,12 @@ That would avoid having the C code knowing about scratch areas.
 >  		else
 >  			r = kvmppc_run_vcpu(vcpu);
 >
-> -		if (run->exit_reason = KVM_EXIT_PAPR_HCALL &&
+> -		if (run->exit_reason == KVM_EXIT_PAPR_HCALL &&
 > -		    !(vcpu->arch.shregs.msr & MSR_PR)) {
 > -			trace_kvm_hcall_enter(vcpu);
 > -			r = kvmppc_pseries_do_hcall(vcpu);
 > -			trace_kvm_hcall_exit(vcpu, r);
-> +		if (run->exit_reason = KVM_EXIT_PAPR_HCALL) {
+> +		if (run->exit_reason == KVM_EXIT_PAPR_HCALL) {
 > +			if (unlikely(vcpu->arch.shregs.msr & MSR_PR)) {
 > +				/*
 > +				 * Guest userspace executed sc 1, reflect it
@@ -335,7 +335,7 @@ in there as well.
 > +				trace_kvm_hcall_exit(vcpu, r);
 > +			}
 >  			kvmppc_core_prepare_to_enter(vcpu);
->  		} else if (r = RESUME_PAGE_FAULT) {
+>  		} else if (r == RESUME_PAGE_FAULT) {
 >  			srcu_idx = srcu_read_lock(&kvm->srcu);
 > diff --git a/arch/powerpc/kvm/book3s_hv_interrupt.c b/arch/powerpc/kvm/book3s_hv_interrupt.c
 > new file mode 100644
@@ -383,7 +383,7 @@ in there as well.
 > +	curr->seqcount = seq + 1;
 > +	smp_wmb();
 > +	curr->tb_total += delta;
-> +	if (seq = 0 || delta < curr->tb_min)
+> +	if (seq == 0 || delta < curr->tb_min)
 > +		curr->tb_min = delta;
 > +	if (delta > curr->tb_max)
 > +		curr->tb_max = delta;
@@ -496,9 +496,9 @@ in asm already.
 
 > +	if (likely(trap > BOOK3S_INTERRUPT_MACHINE_CHECK)) {
 > +		exsave = local_paca->exgen;
-> +	} else if (trap = BOOK3S_INTERRUPT_SYSTEM_RESET) {
+> +	} else if (trap == BOOK3S_INTERRUPT_SYSTEM_RESET) {
 > +		exsave = local_paca->exnmi;
-> +	} else { /* trap = 0x200 */
+> +	} else { /* trap == 0x200 */
 > +		exsave = local_paca->exmc;
 > +	}
 > +
@@ -515,26 +515,26 @@ in asm already.
 > +
 > +	vcpu->arch.last_inst = KVM_INST_FETCH_FAILED;
 > +
-> +	if (unlikely(trap = BOOK3S_INTERRUPT_MACHINE_CHECK)) {
+> +	if (unlikely(trap == BOOK3S_INTERRUPT_MACHINE_CHECK)) {
 > +		vcpu->arch.fault_dar = exsave[EX_DAR/sizeof(u64)];
 > +		vcpu->arch.fault_dsisr = exsave[EX_DSISR/sizeof(u64)];
 > +		kvmppc_realmode_machine_check(vcpu);
 > +
-> +	} else if (unlikely(trap = BOOK3S_INTERRUPT_HMI)) {
+> +	} else if (unlikely(trap == BOOK3S_INTERRUPT_HMI)) {
 > +		kvmppc_realmode_hmi_handler();
 > +
-> +	} else if (trap = BOOK3S_INTERRUPT_H_EMUL_ASSIST) {
+> +	} else if (trap == BOOK3S_INTERRUPT_H_EMUL_ASSIST) {
 > +		vcpu->arch.emul_inst = mfspr(SPRN_HEIR);
 > +
-> +	} else if (trap = BOOK3S_INTERRUPT_H_DATA_STORAGE) {
+> +	} else if (trap == BOOK3S_INTERRUPT_H_DATA_STORAGE) {
 > +		vcpu->arch.fault_dar = exsave[EX_DAR/sizeof(u64)];
 > +		vcpu->arch.fault_dsisr = exsave[EX_DSISR/sizeof(u64)];
 > +		vcpu->arch.fault_gpa = mfspr(SPRN_ASDR);
 > +
-> +	} else if (trap = BOOK3S_INTERRUPT_H_INST_STORAGE) {
+> +	} else if (trap == BOOK3S_INTERRUPT_H_INST_STORAGE) {
 > +		vcpu->arch.fault_gpa = mfspr(SPRN_ASDR);
 > +
-> +	} else if (trap = BOOK3S_INTERRUPT_H_FAC_UNAVAIL) {
+> +	} else if (trap == BOOK3S_INTERRUPT_H_FAC_UNAVAIL) {
 > +		vcpu->arch.hfscr = mfspr(SPRN_HFSCR);
 > +
 > +#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
@@ -543,7 +543,7 @@ in asm already.
 > +	 * on POWER9 DD2.2.  This is early in the guest exit path - we
 > +	 * haven't saved registers or done a treclaim yet.
 > +	 */
-> +	} else if (trap = BOOK3S_INTERRUPT_HV_SOFTPATCH) {
+> +	} else if (trap == BOOK3S_INTERRUPT_HV_SOFTPATCH) {
 > +		vcpu->arch.emul_inst = mfspr(SPRN_HEIR);
 > +
 > +		/*
diff --git a/a/content_digest b/N1/content_digest
index bd29ccf..c689a8c 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -2,7 +2,7 @@
  "ref\020210225134652.2127648-24-npiggin@gmail.com\0"
  "From\0Fabiano Rosas <farosas@linux.ibm.com>\0"
  "Subject\0Re: [PATCH v2 23/37] KVM: PPC: Book3S HV P9: Implement the rest of the P9 path in C\0"
- "Date\0Fri, 26 Feb 2021 22:37:28 +0000\0"
+ "Date\0Fri, 26 Feb 2021 19:37:28 -0300\0"
  "To\0Nicholas Piggin <npiggin@gmail.com>"
  " kvm-ppc@vger.kernel.org\0"
  "Cc\0linuxppc-dev@lists.ozlabs.org"
@@ -274,7 +274,7 @@
  ">  \t */\n"
  ">  \tcase BOOK3S_INTERRUPT_H_DATA_STORAGE:\n"
  ">  \t\tr = RESUME_PAGE_FAULT;\n"
- "> +\t\tif (vcpu->arch.fault_dsisr = HDSISR_CANARY)\n"
+ "> +\t\tif (vcpu->arch.fault_dsisr == HDSISR_CANARY)\n"
  "> +\t\t\tr = RESUME_GUEST; /* Just retry if it's the canary */\n"
  ">  \t\tbreak;\n"
  ">  \tcase BOOK3S_INTERRUPT_H_INST_STORAGE:\n"
@@ -285,9 +285,9 @@
  ">  \t\tmtspr(SPRN_PSSCR_PR, host_psscr);\n"
  "> -\n"
  ">  \t\t/* H_CEDE has to be handled now, not later */\n"
- "> -\t\tif (trap = BOOK3S_INTERRUPT_SYSCALL && !vcpu->arch.nested &&\n"
- "> +\t\tif (trap = BOOK3S_INTERRUPT_SYSCALL &&\n"
- ">  \t\t    kvmppc_get_gpr(vcpu, 3) = H_CEDE) {\n"
+ "> -\t\tif (trap == BOOK3S_INTERRUPT_SYSCALL && !vcpu->arch.nested &&\n"
+ "> +\t\tif (trap == BOOK3S_INTERRUPT_SYSCALL &&\n"
+ ">  \t\t    kvmppc_get_gpr(vcpu, 3) == H_CEDE) {\n"
  ">  \t\t\tkvmppc_cede(vcpu);\n"
  ">  \t\t\tkvmppc_set_gpr(vcpu, 3, 0);\n"
  ">  \t\t\ttrap = 0;\n"
@@ -312,12 +312,12 @@
  ">  \t\telse\n"
  ">  \t\t\tr = kvmppc_run_vcpu(vcpu);\n"
  ">\n"
- "> -\t\tif (run->exit_reason = KVM_EXIT_PAPR_HCALL &&\n"
+ "> -\t\tif (run->exit_reason == KVM_EXIT_PAPR_HCALL &&\n"
  "> -\t\t    !(vcpu->arch.shregs.msr & MSR_PR)) {\n"
  "> -\t\t\ttrace_kvm_hcall_enter(vcpu);\n"
  "> -\t\t\tr = kvmppc_pseries_do_hcall(vcpu);\n"
  "> -\t\t\ttrace_kvm_hcall_exit(vcpu, r);\n"
- "> +\t\tif (run->exit_reason = KVM_EXIT_PAPR_HCALL) {\n"
+ "> +\t\tif (run->exit_reason == KVM_EXIT_PAPR_HCALL) {\n"
  "> +\t\t\tif (unlikely(vcpu->arch.shregs.msr & MSR_PR)) {\n"
  "> +\t\t\t\t/*\n"
  "> +\t\t\t\t * Guest userspace executed sc 1, reflect it\n"
@@ -346,7 +346,7 @@
  "> +\t\t\t\ttrace_kvm_hcall_exit(vcpu, r);\n"
  "> +\t\t\t}\n"
  ">  \t\t\tkvmppc_core_prepare_to_enter(vcpu);\n"
- ">  \t\t} else if (r = RESUME_PAGE_FAULT) {\n"
+ ">  \t\t} else if (r == RESUME_PAGE_FAULT) {\n"
  ">  \t\t\tsrcu_idx = srcu_read_lock(&kvm->srcu);\n"
  "> diff --git a/arch/powerpc/kvm/book3s_hv_interrupt.c b/arch/powerpc/kvm/book3s_hv_interrupt.c\n"
  "> new file mode 100644\n"
@@ -394,7 +394,7 @@
  "> +\tcurr->seqcount = seq + 1;\n"
  "> +\tsmp_wmb();\n"
  "> +\tcurr->tb_total += delta;\n"
- "> +\tif (seq = 0 || delta < curr->tb_min)\n"
+ "> +\tif (seq == 0 || delta < curr->tb_min)\n"
  "> +\t\tcurr->tb_min = delta;\n"
  "> +\tif (delta > curr->tb_max)\n"
  "> +\t\tcurr->tb_max = delta;\n"
@@ -507,9 +507,9 @@
  "\n"
  "> +\tif (likely(trap > BOOK3S_INTERRUPT_MACHINE_CHECK)) {\n"
  "> +\t\texsave = local_paca->exgen;\n"
- "> +\t} else if (trap = BOOK3S_INTERRUPT_SYSTEM_RESET) {\n"
+ "> +\t} else if (trap == BOOK3S_INTERRUPT_SYSTEM_RESET) {\n"
  "> +\t\texsave = local_paca->exnmi;\n"
- "> +\t} else { /* trap = 0x200 */\n"
+ "> +\t} else { /* trap == 0x200 */\n"
  "> +\t\texsave = local_paca->exmc;\n"
  "> +\t}\n"
  "> +\n"
@@ -526,26 +526,26 @@
  "> +\n"
  "> +\tvcpu->arch.last_inst = KVM_INST_FETCH_FAILED;\n"
  "> +\n"
- "> +\tif (unlikely(trap = BOOK3S_INTERRUPT_MACHINE_CHECK)) {\n"
+ "> +\tif (unlikely(trap == BOOK3S_INTERRUPT_MACHINE_CHECK)) {\n"
  "> +\t\tvcpu->arch.fault_dar = exsave[EX_DAR/sizeof(u64)];\n"
  "> +\t\tvcpu->arch.fault_dsisr = exsave[EX_DSISR/sizeof(u64)];\n"
  "> +\t\tkvmppc_realmode_machine_check(vcpu);\n"
  "> +\n"
- "> +\t} else if (unlikely(trap = BOOK3S_INTERRUPT_HMI)) {\n"
+ "> +\t} else if (unlikely(trap == BOOK3S_INTERRUPT_HMI)) {\n"
  "> +\t\tkvmppc_realmode_hmi_handler();\n"
  "> +\n"
- "> +\t} else if (trap = BOOK3S_INTERRUPT_H_EMUL_ASSIST) {\n"
+ "> +\t} else if (trap == BOOK3S_INTERRUPT_H_EMUL_ASSIST) {\n"
  "> +\t\tvcpu->arch.emul_inst = mfspr(SPRN_HEIR);\n"
  "> +\n"
- "> +\t} else if (trap = BOOK3S_INTERRUPT_H_DATA_STORAGE) {\n"
+ "> +\t} else if (trap == BOOK3S_INTERRUPT_H_DATA_STORAGE) {\n"
  "> +\t\tvcpu->arch.fault_dar = exsave[EX_DAR/sizeof(u64)];\n"
  "> +\t\tvcpu->arch.fault_dsisr = exsave[EX_DSISR/sizeof(u64)];\n"
  "> +\t\tvcpu->arch.fault_gpa = mfspr(SPRN_ASDR);\n"
  "> +\n"
- "> +\t} else if (trap = BOOK3S_INTERRUPT_H_INST_STORAGE) {\n"
+ "> +\t} else if (trap == BOOK3S_INTERRUPT_H_INST_STORAGE) {\n"
  "> +\t\tvcpu->arch.fault_gpa = mfspr(SPRN_ASDR);\n"
  "> +\n"
- "> +\t} else if (trap = BOOK3S_INTERRUPT_H_FAC_UNAVAIL) {\n"
+ "> +\t} else if (trap == BOOK3S_INTERRUPT_H_FAC_UNAVAIL) {\n"
  "> +\t\tvcpu->arch.hfscr = mfspr(SPRN_HFSCR);\n"
  "> +\n"
  "> +#ifdef CONFIG_PPC_TRANSACTIONAL_MEM\n"
@@ -554,7 +554,7 @@
  "> +\t * on POWER9 DD2.2.  This is early in the guest exit path - we\n"
  "> +\t * haven't saved registers or done a treclaim yet.\n"
  "> +\t */\n"
- "> +\t} else if (trap = BOOK3S_INTERRUPT_HV_SOFTPATCH) {\n"
+ "> +\t} else if (trap == BOOK3S_INTERRUPT_HV_SOFTPATCH) {\n"
  "> +\t\tvcpu->arch.emul_inst = mfspr(SPRN_HEIR);\n"
  "> +\n"
  "> +\t\t/*\n"
@@ -589,4 +589,4 @@
  "\n"
  <snip>
 
-1c156f0374af7589fa04ce4fcd0b0f0493f89bfbdefb176700cd241c521a3180
+c633a7c192a824bfb93872032c9b57c9c1266805f2417ffbf7a9a1d3e2309239

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.