diff for duplicates of <871rc5g32x.fsf@linux.ibm.com> diff --git a/a/1.txt b/N1/1.txt index 4d18f2f..91b9258 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -114,8 +114,8 @@ Tested-by: Fabiano Rosas <farosas@linux.ibm.com> > > +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); > +} > + > /* @@ -123,8 +123,8 @@ Tested-by: Fabiano Rosas <farosas@linux.ibm.com> > * 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); @@ -133,12 +133,12 @@ Tested-by: Fabiano Rosas <farosas@linux.ibm.com> > } 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); @@ -164,9 +164,9 @@ Tested-by: Fabiano Rosas <farosas@linux.ibm.com> > 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 54dc1ba..4efebf6 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 18:03:18 +0000\0" + "Date\0Tue, 23 Mar 2021 15:03:18 -0300\0" "To\0Nicholas Piggin <npiggin@gmail.com>" " kvm-ppc@vger.kernel.org\0" "Cc\0linuxppc-dev@lists.ozlabs.org" @@ -125,8 +125,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" @@ -134,8 +134,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" @@ -144,12 +144,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" @@ -175,9 +175,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" @@ -293,4 +293,4 @@ "> {\n" "> \tstruct kvmppc_xive_vcpu *xc = vcpu->arch.xive_vcpu;" -10f5fa22a5e3d4cb1c613c4000551165e8435e02033edb5f4c96e9dd8876fdd4 +fc54d0a67dc83314fe1ea8045246e85b48fb466d91910042ce15095f70455efe
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.