diff for duplicates of <20120927060056.GA15856@drongo> diff --git a/a/1.txt b/N1/1.txt index 75a7e51..de54fbf 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -187,18 +187,18 @@ index 77dec0f..3a737a4 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 @@ -1240,8 +1232,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); @@ -214,13 +214,13 @@ index 77dec0f..3a737a4 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.4 diff --git a/a/content_digest b/N1/content_digest index 14bbb2c..a9b357c 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -3,7 +3,7 @@ "ref\00C4FC94F-4126-4FF2-8B74-DE50BB2A0914@suse.de\0" "From\0Paul Mackerras <paulus@samba.org>\0" "Subject\0[PATCH v2 06/10] KVM: PPC: Book3S HV: Don't access runnable threads list without vcore lock\0" - "Date\0Thu, 27 Sep 2012 06:00:56 +0000\0" + "Date\0Thu, 27 Sep 2012 16:00:56 +1000\0" "To\0Alexander Graf <agraf@suse.de>\0" "Cc\0kvm@vger.kernel.org" " kvm-ppc@vger.kernel.org\0" @@ -198,18 +198,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" "@@ -1240,8 +1232,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" @@ -225,15 +225,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.4 -cc16be964036ec43844616923c2d1a43eb5f137f6caf9bbb97a9db7d6e207697 +f5f6425efe86c8bd4b7b6d1063b6cd8c831d36b38bdf84fc5e9d600bdc2188b6
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.