diff for duplicates of <20120921053731.GG15685@drongo> diff --git a/a/1.txt b/N1/1.txt index 1ef9481..549cad5 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -175,18 +175,18 @@ index cd3dc12..bd3c5c1 100644 - n_ceded += v->arch.ceded; + if (!v->arch.pending_exceptions) + n_ceded += v->arch.ceded; - if (n_ceded = vc->n_runnable) + if (n_ceded == vc->n_runnable) kvmppc_vcore_blocked(vc); else @@ -1136,8 +1125,9 @@ static int kvmppc_run_vcpu(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu) } if (signal_pending(current)) { -- if (vc->vcore_state = VCORE_RUNNING || -- vc->vcore_state = VCORE_EXITING) { -+ while (vcpu->arch.state = KVMPPC_VCPU_RUNNABLE && -+ (vc->vcore_state = VCORE_RUNNING || -+ vc->vcore_state = VCORE_EXITING)) { +- if (vc->vcore_state == VCORE_RUNNING || +- vc->vcore_state == VCORE_EXITING) { ++ while (vcpu->arch.state == KVMPPC_VCPU_RUNNABLE && ++ (vc->vcore_state == VCORE_RUNNING || ++ vc->vcore_state == VCORE_EXITING)) { spin_unlock(&vc->lock); kvmppc_wait_for_exec(vcpu, TASK_UNINTERRUPTIBLE); spin_lock(&vc->lock); @@ -202,13 +202,13 @@ index cd3dc12..bd3c5c1 100644 !(vcpu->arch.shregs.msr & MSR_PR)) { r = kvmppc_pseries_do_hcall(vcpu); kvmppc_core_prepare_to_enter(vcpu); -+ } else if (r = RESUME_PAGE_FAULT) { ++ } else if (r == RESUME_PAGE_FAULT) { + srcu_idx = srcu_read_lock(&vcpu->kvm->srcu); + r = kvmppc_book3s_hv_page_fault(run, vcpu, + vcpu->arch.fault_dar, vcpu->arch.fault_dsisr); + srcu_read_unlock(&vcpu->kvm->srcu, srcu_idx); } - } while (r = RESUME_GUEST); + } while (r == RESUME_GUEST); -- 1.7.10 diff --git a/a/content_digest b/N1/content_digest index 7d06180..a243287 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,7 +1,7 @@ "ref\020120921051606.GA15685@drongo\0" "From\0Paul Mackerras <paulus@samba.org>\0" "Subject\0[PATCH 06/10] KVM: PPC: Book3s HV: Don't access runnable threads list without vcore lock\0" - "Date\0Fri, 21 Sep 2012 05:37:31 +0000\0" + "Date\0Fri, 21 Sep 2012 15:37:31 +1000\0" "To\0Alexander Graf <agraf@suse.de>\0" "Cc\0kvm@vger.kernel.org" " kvm-ppc@vger.kernel.org\0" @@ -184,18 +184,18 @@ "-\t\t\tn_ceded += v->arch.ceded;\n" "+\t\t\tif (!v->arch.pending_exceptions)\n" "+\t\t\t\tn_ceded += v->arch.ceded;\n" - " \t\tif (n_ceded = vc->n_runnable)\n" + " \t\tif (n_ceded == vc->n_runnable)\n" " \t\t\tkvmppc_vcore_blocked(vc);\n" " \t\telse\n" "@@ -1136,8 +1125,9 @@ static int kvmppc_run_vcpu(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)\n" " \t}\n" " \n" " \tif (signal_pending(current)) {\n" - "-\t\tif (vc->vcore_state = VCORE_RUNNING ||\n" - "-\t\t vc->vcore_state = VCORE_EXITING) {\n" - "+\t\twhile (vcpu->arch.state = KVMPPC_VCPU_RUNNABLE &&\n" - "+\t\t (vc->vcore_state = VCORE_RUNNING ||\n" - "+\t\t\tvc->vcore_state = VCORE_EXITING)) {\n" + "-\t\tif (vc->vcore_state == VCORE_RUNNING ||\n" + "-\t\t vc->vcore_state == VCORE_EXITING) {\n" + "+\t\twhile (vcpu->arch.state == KVMPPC_VCPU_RUNNABLE &&\n" + "+\t\t (vc->vcore_state == VCORE_RUNNING ||\n" + "+\t\t\tvc->vcore_state == VCORE_EXITING)) {\n" " \t\t\tspin_unlock(&vc->lock);\n" " \t\t\tkvmppc_wait_for_exec(vcpu, TASK_UNINTERRUPTIBLE);\n" " \t\t\tspin_lock(&vc->lock);\n" @@ -211,15 +211,15 @@ " \t\t !(vcpu->arch.shregs.msr & MSR_PR)) {\n" " \t\t\tr = kvmppc_pseries_do_hcall(vcpu);\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(&vcpu->kvm->srcu);\n" "+\t\t\tr = kvmppc_book3s_hv_page_fault(run, vcpu,\n" "+\t\t\t\tvcpu->arch.fault_dar, vcpu->arch.fault_dsisr);\n" "+\t\t\tsrcu_read_unlock(&vcpu->kvm->srcu, srcu_idx);\n" " \t\t}\n" - " \t} while (r = RESUME_GUEST);\n" + " \t} while (r == RESUME_GUEST);\n" " \n" "-- \n" 1.7.10 -f936df102fa4ccb23c3acba150a157e31aa6455f404f87a78a03dbb6772d3c2d +f38edb9750ad7902b0607117590f61f9a449206fd8c050db57f7a892617f3191
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.