diff for duplicates of <87y2ed5vi0.fsf@linux.ibm.com> diff --git a/a/1.txt b/N1/1.txt index df2b20f..d3fdfb6 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -83,8 +83,8 @@ before branching to no_try_real in book3s_hv_rmhandlers.S. > > +static inline bool hcall_is_xics(unsigned long req) > +{ -> + return (req = H_EOI || req = H_CPPR || req = H_IPI || -> + req = H_IPOLL || req = H_XIRR || req = H_XIRR_X); +> + return (req == H_EOI || req == H_CPPR || req == H_IPI || +> + req == H_IPOLL || req == H_XIRR || req == H_XIRR_X); > +} > + > /* @@ -92,8 +92,8 @@ before branching to no_try_real in book3s_hv_rmhandlers.S. > * guest are both using the radix MMU. The LPIDR has already been set. > @@ -3774,15 +3787,36 @@ static int kvmhv_p9_guest_entry(struct kvm_vcpu *vcpu, u64 time_limit, > /* H_CEDE has to be handled now, not later */ -> if (trap = BOOK3S_INTERRUPT_SYSCALL && !vcpu->arch.nested && -> kvmppc_get_gpr(vcpu, 3) = H_CEDE) { +> if (trap == BOOK3S_INTERRUPT_SYSCALL && !vcpu->arch.nested && +> kvmppc_get_gpr(vcpu, 3) == H_CEDE) { > - kvmppc_nested_cede(vcpu); > + kvmppc_cede(vcpu); > kvmppc_set_gpr(vcpu, 3, 0); @@ -102,12 +102,12 @@ before branching to no_try_real in book3s_hv_rmhandlers.S. > } else { > kvmppc_xive_push_vcpu(vcpu); > trap = kvmhv_load_hv_regs_and_go(vcpu, time_limit, lpcr); -> + if (trap = BOOK3S_INTERRUPT_SYSCALL && !vcpu->arch.nested && +> + if (trap == BOOK3S_INTERRUPT_SYSCALL && !vcpu->arch.nested && > + !(vcpu->arch.shregs.msr & MSR_PR)) { > + unsigned long req = kvmppc_get_gpr(vcpu, 3); > + > + /* H_CEDE has to be handled now, not later */ -> + if (req = H_CEDE) { +> + if (req == H_CEDE) { > + kvmppc_cede(vcpu); > + kvmppc_xive_cede_vcpu(vcpu); /* may un-cede */ > + kvmppc_set_gpr(vcpu, 3, 0); @@ -133,9 +133,9 @@ before branching to no_try_real in book3s_hv_rmhandlers.S. > 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)) { -> + if (run->exit_reason = KVM_EXIT_PAPR_HCALL) { +> + if (run->exit_reason == KVM_EXIT_PAPR_HCALL) { > + if (WARN_ON_ONCE(vcpu->arch.shregs.msr & MSR_PR)) { > + r = RESUME_GUEST; > + continue; diff --git a/a/content_digest b/N1/content_digest index 00812f7..bb2294b 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -2,7 +2,7 @@ "ref\020210323010305.1045293-23-npiggin@gmail.com\0" "From\0Fabiano Rosas <farosas@linux.ibm.com>\0" "Subject\0Re: [PATCH v4 22/46] KVM: PPC: Book3S HV P9: Stop handling hcalls in real-mode in the P9 path\0" - "Date\0Tue, 23 Mar 2021 22:57:11 +0000\0" + "Date\0Tue, 23 Mar 2021 19:57:11 -0300\0" "To\0Nicholas Piggin <npiggin@gmail.com>" " kvm-ppc@vger.kernel.org\0" "Cc\0linuxppc-dev@lists.ozlabs.org" @@ -94,8 +94,8 @@ ">\n" "> +static inline bool hcall_is_xics(unsigned long req)\n" "> +{\n" - "> +\treturn (req = H_EOI || req = H_CPPR || req = H_IPI ||\n" - "> +\t\treq = H_IPOLL || req = H_XIRR || req = H_XIRR_X);\n" + "> +\treturn (req == H_EOI || req == H_CPPR || req == H_IPI ||\n" + "> +\t\treq == H_IPOLL || req == H_XIRR || req == H_XIRR_X);\n" "> +}\n" "> +\n" "> /*\n" @@ -103,8 +103,8 @@ "> * guest are both using the radix MMU. The LPIDR has already been set.\n" "> @@ -3774,15 +3787,36 @@ static int kvmhv_p9_guest_entry(struct kvm_vcpu *vcpu, u64 time_limit,\n" "> \t\t/* H_CEDE has to be handled now, not later */\n" - "> \t\tif (trap = BOOK3S_INTERRUPT_SYSCALL && !vcpu->arch.nested &&\n" - "> \t\t kvmppc_get_gpr(vcpu, 3) = H_CEDE) {\n" + "> \t\tif (trap == BOOK3S_INTERRUPT_SYSCALL && !vcpu->arch.nested &&\n" + "> \t\t kvmppc_get_gpr(vcpu, 3) == H_CEDE) {\n" "> -\t\t\tkvmppc_nested_cede(vcpu);\n" "> +\t\t\tkvmppc_cede(vcpu);\n" "> \t\t\tkvmppc_set_gpr(vcpu, 3, 0);\n" @@ -113,12 +113,12 @@ "> \t} else {\n" "> \t\tkvmppc_xive_push_vcpu(vcpu);\n" "> \t\ttrap = kvmhv_load_hv_regs_and_go(vcpu, time_limit, lpcr);\n" - "> +\t\tif (trap = BOOK3S_INTERRUPT_SYSCALL && !vcpu->arch.nested &&\n" + "> +\t\tif (trap == BOOK3S_INTERRUPT_SYSCALL && !vcpu->arch.nested &&\n" "> +\t\t !(vcpu->arch.shregs.msr & MSR_PR)) {\n" "> +\t\t\tunsigned long req = kvmppc_get_gpr(vcpu, 3);\n" "> +\n" "> +\t\t\t/* H_CEDE has to be handled now, not later */\n" - "> +\t\t\tif (req = H_CEDE) {\n" + "> +\t\t\tif (req == H_CEDE) {\n" "> +\t\t\t\tkvmppc_cede(vcpu);\n" "> +\t\t\t\tkvmppc_xive_cede_vcpu(vcpu); /* may un-cede */\n" "> +\t\t\t\tkvmppc_set_gpr(vcpu, 3, 0);\n" @@ -144,9 +144,9 @@ "> \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\tif (run->exit_reason = KVM_EXIT_PAPR_HCALL) {\n" + "> +\t\tif (run->exit_reason == KVM_EXIT_PAPR_HCALL) {\n" "> +\t\t\tif (WARN_ON_ONCE(vcpu->arch.shregs.msr & MSR_PR)) {\n" "> +\t\t\t\tr = RESUME_GUEST;\n" "> +\t\t\t\tcontinue;\n" @@ -177,4 +177,4 @@ "> \t/* Hypervisor doorbell - exit only if host IPI flag set */\n" "> \tcmpwi\tr12, BOOK3S_INTERRUPT_H_DOORBELL" -41b8a75ac8168183a225173757b0b377e5a97afe2c43761888c255ee2b939434 +0b1d55cae0da0805245a54993ac97cf4aa88777f1c034914f75cc1cc5664ccbc
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.