diff for duplicates of <20111206060800.GI12389@drongo> diff --git a/a/1.txt b/N1/1.txt index bc3f7c7..73e6db3 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -50,7 +50,7 @@ index 23bb17e..fe45a81 100644 + : "=&r" (tmp), "=&r" (old) + : "r" (hpte), "r" (bits), "i" (HPTE_V_HVLOCK) + : "cc", "memory"); -+ return old = 0; ++ return old == 0; +} + static inline unsigned long compute_tlbie_rb(unsigned long v, unsigned long r, @@ -81,7 +81,7 @@ index 5f45ba7..659175f 100644 - : "=&r" (tmp), "=&r" (old) - : "r" (hpte), "r" (bits), "i" (HPTE_V_HVLOCK) - : "cc", "memory"); -- return old = 0; +- return old == 0; -} - long kvmppc_h_enter(struct kvm_vcpu *vcpu, unsigned long flags, @@ -94,20 +94,20 @@ index 5f45ba7..659175f 100644 + if (pte_index >= HPT_NPTE) return H_PARAMETER; - if (likely((flags & H_EXACT) = 0)) { + if (likely((flags & H_EXACT) == 0)) { pte_index &= ~7UL; hpte = (unsigned long *)(kvm->arch.hpt_virt + (pte_index << 4)); - for (i = 0; ; ++i) { -- if (i = 8) +- if (i == 8) - return H_PTEG_FULL; + for (i = 0; i < 8; ++i) { - if ((*hpte & HPTE_V_VALID) = 0 && + if ((*hpte & HPTE_V_VALID) == 0 && - lock_hpte(hpte, HPTE_V_HVLOCK | HPTE_V_VALID)) + try_lock_hpte(hpte, HPTE_V_HVLOCK | HPTE_V_VALID)) break; hpte += 2; } -+ if (i = 8) { ++ if (i == 8) { + /* + * Since try_lock_hpte doesn't retry (not even stdcx. + * failures), it could be that there is a free slot @@ -118,12 +118,12 @@ index 5f45ba7..659175f 100644 + for (i = 0; i < 8; ++i) { + while (!try_lock_hpte(hpte, HPTE_V_HVLOCK)) + cpu_relax(); -+ if ((*hpte & HPTE_V_VALID) = 0) ++ if ((*hpte & HPTE_V_VALID) == 0) + break; + *hpte &= ~HPTE_V_HVLOCK; + hpte += 2; + } -+ if (i = 8) ++ if (i == 8) + return H_PTEG_FULL; + } pte_index += i; @@ -150,7 +150,7 @@ index 5f45ba7..659175f 100644 - while (!lock_hpte(hpte, HPTE_V_HVLOCK)) + while (!try_lock_hpte(hpte, HPTE_V_HVLOCK)) cpu_relax(); - if ((hpte[0] & HPTE_V_VALID) = 0 || + if ((hpte[0] & HPTE_V_VALID) == 0 || ((flags & H_AVPN) && (hpte[0] & ~0x7fUL) != avpn) || @@ -251,7 +256,7 @@ long kvmppc_h_bulk_remove(struct kvm_vcpu *vcpu) break; @@ -168,7 +168,7 @@ index 5f45ba7..659175f 100644 - while (!lock_hpte(hpte, HPTE_V_HVLOCK)) + while (!try_lock_hpte(hpte, HPTE_V_HVLOCK)) cpu_relax(); - if ((hpte[0] & HPTE_V_VALID) = 0 || + if ((hpte[0] & HPTE_V_VALID) == 0 || ((flags & H_AVPN) && (hpte[0] & ~0x7fUL) != avpn)) { -- 1.7.5.4 diff --git a/a/content_digest b/N1/content_digest index 57cb9df..074460d 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,11 +1,11 @@ "ref\020111206060156.GD12389@drongo\0" "From\0Paul Mackerras <paulus@samba.org>\0" "Subject\0[PATCH 05/13] KVM: PPC: Make the H_ENTER hcall more reliable\0" - "Date\0Tue, 06 Dec 2011 06:08:00 +0000\0" + "Date\0Tue, 6 Dec 2011 17:08:00 +1100\0" "To\0Alexander Graf <agraf@suse.de>\0" "Cc\0linuxppc-dev@ozlabs.org" - kvm-ppc@vger.kernel.org - " kvm@vger.kernel.org\0" + kvm@vger.kernel.org + " kvm-ppc@vger.kernel.org\0" "\00:1\0" "b\0" "At present, our implementation of H_ENTER only makes one try at locking\n" @@ -60,7 +60,7 @@ "+\t\t : \"=&r\" (tmp), \"=&r\" (old)\n" "+\t\t : \"r\" (hpte), \"r\" (bits), \"i\" (HPTE_V_HVLOCK)\n" "+\t\t : \"cc\", \"memory\");\n" - "+\treturn old = 0;\n" + "+\treturn old == 0;\n" "+}\n" "+\n" " static inline unsigned long compute_tlbie_rb(unsigned long v, unsigned long r,\n" @@ -91,7 +91,7 @@ "-\t\t : \"=&r\" (tmp), \"=&r\" (old)\n" "-\t\t : \"r\" (hpte), \"r\" (bits), \"i\" (HPTE_V_HVLOCK)\n" "-\t\t : \"cc\", \"memory\");\n" - "-\treturn old = 0;\n" + "-\treturn old == 0;\n" "-}\n" "-\n" " long kvmppc_h_enter(struct kvm_vcpu *vcpu, unsigned long flags,\n" @@ -104,20 +104,20 @@ "+\n" " \tif (pte_index >= HPT_NPTE)\n" " \t\treturn H_PARAMETER;\n" - " \tif (likely((flags & H_EXACT) = 0)) {\n" + " \tif (likely((flags & H_EXACT) == 0)) {\n" " \t\tpte_index &= ~7UL;\n" " \t\thpte = (unsigned long *)(kvm->arch.hpt_virt + (pte_index << 4));\n" "-\t\tfor (i = 0; ; ++i) {\n" - "-\t\t\tif (i = 8)\n" + "-\t\t\tif (i == 8)\n" "-\t\t\t\treturn H_PTEG_FULL;\n" "+\t\tfor (i = 0; i < 8; ++i) {\n" - " \t\t\tif ((*hpte & HPTE_V_VALID) = 0 &&\n" + " \t\t\tif ((*hpte & HPTE_V_VALID) == 0 &&\n" "-\t\t\t lock_hpte(hpte, HPTE_V_HVLOCK | HPTE_V_VALID))\n" "+\t\t\t try_lock_hpte(hpte, HPTE_V_HVLOCK | HPTE_V_VALID))\n" " \t\t\t\tbreak;\n" " \t\t\thpte += 2;\n" " \t\t}\n" - "+\t\tif (i = 8) {\n" + "+\t\tif (i == 8) {\n" "+\t\t\t/*\n" "+\t\t\t * Since try_lock_hpte doesn't retry (not even stdcx.\n" "+\t\t\t * failures), it could be that there is a free slot\n" @@ -128,12 +128,12 @@ "+\t\t\tfor (i = 0; i < 8; ++i) {\n" "+\t\t\t\twhile (!try_lock_hpte(hpte, HPTE_V_HVLOCK))\n" "+\t\t\t\t\tcpu_relax();\n" - "+\t\t\t\tif ((*hpte & HPTE_V_VALID) = 0)\n" + "+\t\t\t\tif ((*hpte & HPTE_V_VALID) == 0)\n" "+\t\t\t\t\tbreak;\n" "+\t\t\t\t*hpte &= ~HPTE_V_HVLOCK;\n" "+\t\t\t\thpte += 2;\n" "+\t\t\t}\n" - "+\t\t\tif (i = 8)\n" + "+\t\t\tif (i == 8)\n" "+\t\t\t\treturn H_PTEG_FULL;\n" "+\t\t}\n" " \t\tpte_index += i;\n" @@ -160,7 +160,7 @@ "-\twhile (!lock_hpte(hpte, HPTE_V_HVLOCK))\n" "+\twhile (!try_lock_hpte(hpte, HPTE_V_HVLOCK))\n" " \t\tcpu_relax();\n" - " \tif ((hpte[0] & HPTE_V_VALID) = 0 ||\n" + " \tif ((hpte[0] & HPTE_V_VALID) == 0 ||\n" " \t ((flags & H_AVPN) && (hpte[0] & ~0x7fUL) != avpn) ||\n" "@@ -251,7 +256,7 @@ long kvmppc_h_bulk_remove(struct kvm_vcpu *vcpu)\n" " \t\t\tbreak;\n" @@ -178,9 +178,9 @@ "-\twhile (!lock_hpte(hpte, HPTE_V_HVLOCK))\n" "+\twhile (!try_lock_hpte(hpte, HPTE_V_HVLOCK))\n" " \t\tcpu_relax();\n" - " \tif ((hpte[0] & HPTE_V_VALID) = 0 ||\n" + " \tif ((hpte[0] & HPTE_V_VALID) == 0 ||\n" " \t ((flags & H_AVPN) && (hpte[0] & ~0x7fUL) != avpn)) {\n" "-- \n" 1.7.5.4 -87132ff290a4bbdd9605ee683719f8b810ac63fa67d3ecb60a1e01da0cc25690 +3bdcaf355113efa92f7808142c5fada1ef0478346f9ab95d35e941b1724e145e
diff --git a/a/1.txt b/N2/1.txt index bc3f7c7..73e6db3 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -50,7 +50,7 @@ index 23bb17e..fe45a81 100644 + : "=&r" (tmp), "=&r" (old) + : "r" (hpte), "r" (bits), "i" (HPTE_V_HVLOCK) + : "cc", "memory"); -+ return old = 0; ++ return old == 0; +} + static inline unsigned long compute_tlbie_rb(unsigned long v, unsigned long r, @@ -81,7 +81,7 @@ index 5f45ba7..659175f 100644 - : "=&r" (tmp), "=&r" (old) - : "r" (hpte), "r" (bits), "i" (HPTE_V_HVLOCK) - : "cc", "memory"); -- return old = 0; +- return old == 0; -} - long kvmppc_h_enter(struct kvm_vcpu *vcpu, unsigned long flags, @@ -94,20 +94,20 @@ index 5f45ba7..659175f 100644 + if (pte_index >= HPT_NPTE) return H_PARAMETER; - if (likely((flags & H_EXACT) = 0)) { + if (likely((flags & H_EXACT) == 0)) { pte_index &= ~7UL; hpte = (unsigned long *)(kvm->arch.hpt_virt + (pte_index << 4)); - for (i = 0; ; ++i) { -- if (i = 8) +- if (i == 8) - return H_PTEG_FULL; + for (i = 0; i < 8; ++i) { - if ((*hpte & HPTE_V_VALID) = 0 && + if ((*hpte & HPTE_V_VALID) == 0 && - lock_hpte(hpte, HPTE_V_HVLOCK | HPTE_V_VALID)) + try_lock_hpte(hpte, HPTE_V_HVLOCK | HPTE_V_VALID)) break; hpte += 2; } -+ if (i = 8) { ++ if (i == 8) { + /* + * Since try_lock_hpte doesn't retry (not even stdcx. + * failures), it could be that there is a free slot @@ -118,12 +118,12 @@ index 5f45ba7..659175f 100644 + for (i = 0; i < 8; ++i) { + while (!try_lock_hpte(hpte, HPTE_V_HVLOCK)) + cpu_relax(); -+ if ((*hpte & HPTE_V_VALID) = 0) ++ if ((*hpte & HPTE_V_VALID) == 0) + break; + *hpte &= ~HPTE_V_HVLOCK; + hpte += 2; + } -+ if (i = 8) ++ if (i == 8) + return H_PTEG_FULL; + } pte_index += i; @@ -150,7 +150,7 @@ index 5f45ba7..659175f 100644 - while (!lock_hpte(hpte, HPTE_V_HVLOCK)) + while (!try_lock_hpte(hpte, HPTE_V_HVLOCK)) cpu_relax(); - if ((hpte[0] & HPTE_V_VALID) = 0 || + if ((hpte[0] & HPTE_V_VALID) == 0 || ((flags & H_AVPN) && (hpte[0] & ~0x7fUL) != avpn) || @@ -251,7 +256,7 @@ long kvmppc_h_bulk_remove(struct kvm_vcpu *vcpu) break; @@ -168,7 +168,7 @@ index 5f45ba7..659175f 100644 - while (!lock_hpte(hpte, HPTE_V_HVLOCK)) + while (!try_lock_hpte(hpte, HPTE_V_HVLOCK)) cpu_relax(); - if ((hpte[0] & HPTE_V_VALID) = 0 || + if ((hpte[0] & HPTE_V_VALID) == 0 || ((flags & H_AVPN) && (hpte[0] & ~0x7fUL) != avpn)) { -- 1.7.5.4 diff --git a/a/content_digest b/N2/content_digest index 57cb9df..0cd11a6 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -1,7 +1,7 @@ "ref\020111206060156.GD12389@drongo\0" "From\0Paul Mackerras <paulus@samba.org>\0" "Subject\0[PATCH 05/13] KVM: PPC: Make the H_ENTER hcall more reliable\0" - "Date\0Tue, 06 Dec 2011 06:08:00 +0000\0" + "Date\0Tue, 6 Dec 2011 17:08:00 +1100\0" "To\0Alexander Graf <agraf@suse.de>\0" "Cc\0linuxppc-dev@ozlabs.org" kvm-ppc@vger.kernel.org @@ -60,7 +60,7 @@ "+\t\t : \"=&r\" (tmp), \"=&r\" (old)\n" "+\t\t : \"r\" (hpte), \"r\" (bits), \"i\" (HPTE_V_HVLOCK)\n" "+\t\t : \"cc\", \"memory\");\n" - "+\treturn old = 0;\n" + "+\treturn old == 0;\n" "+}\n" "+\n" " static inline unsigned long compute_tlbie_rb(unsigned long v, unsigned long r,\n" @@ -91,7 +91,7 @@ "-\t\t : \"=&r\" (tmp), \"=&r\" (old)\n" "-\t\t : \"r\" (hpte), \"r\" (bits), \"i\" (HPTE_V_HVLOCK)\n" "-\t\t : \"cc\", \"memory\");\n" - "-\treturn old = 0;\n" + "-\treturn old == 0;\n" "-}\n" "-\n" " long kvmppc_h_enter(struct kvm_vcpu *vcpu, unsigned long flags,\n" @@ -104,20 +104,20 @@ "+\n" " \tif (pte_index >= HPT_NPTE)\n" " \t\treturn H_PARAMETER;\n" - " \tif (likely((flags & H_EXACT) = 0)) {\n" + " \tif (likely((flags & H_EXACT) == 0)) {\n" " \t\tpte_index &= ~7UL;\n" " \t\thpte = (unsigned long *)(kvm->arch.hpt_virt + (pte_index << 4));\n" "-\t\tfor (i = 0; ; ++i) {\n" - "-\t\t\tif (i = 8)\n" + "-\t\t\tif (i == 8)\n" "-\t\t\t\treturn H_PTEG_FULL;\n" "+\t\tfor (i = 0; i < 8; ++i) {\n" - " \t\t\tif ((*hpte & HPTE_V_VALID) = 0 &&\n" + " \t\t\tif ((*hpte & HPTE_V_VALID) == 0 &&\n" "-\t\t\t lock_hpte(hpte, HPTE_V_HVLOCK | HPTE_V_VALID))\n" "+\t\t\t try_lock_hpte(hpte, HPTE_V_HVLOCK | HPTE_V_VALID))\n" " \t\t\t\tbreak;\n" " \t\t\thpte += 2;\n" " \t\t}\n" - "+\t\tif (i = 8) {\n" + "+\t\tif (i == 8) {\n" "+\t\t\t/*\n" "+\t\t\t * Since try_lock_hpte doesn't retry (not even stdcx.\n" "+\t\t\t * failures), it could be that there is a free slot\n" @@ -128,12 +128,12 @@ "+\t\t\tfor (i = 0; i < 8; ++i) {\n" "+\t\t\t\twhile (!try_lock_hpte(hpte, HPTE_V_HVLOCK))\n" "+\t\t\t\t\tcpu_relax();\n" - "+\t\t\t\tif ((*hpte & HPTE_V_VALID) = 0)\n" + "+\t\t\t\tif ((*hpte & HPTE_V_VALID) == 0)\n" "+\t\t\t\t\tbreak;\n" "+\t\t\t\t*hpte &= ~HPTE_V_HVLOCK;\n" "+\t\t\t\thpte += 2;\n" "+\t\t\t}\n" - "+\t\t\tif (i = 8)\n" + "+\t\t\tif (i == 8)\n" "+\t\t\t\treturn H_PTEG_FULL;\n" "+\t\t}\n" " \t\tpte_index += i;\n" @@ -160,7 +160,7 @@ "-\twhile (!lock_hpte(hpte, HPTE_V_HVLOCK))\n" "+\twhile (!try_lock_hpte(hpte, HPTE_V_HVLOCK))\n" " \t\tcpu_relax();\n" - " \tif ((hpte[0] & HPTE_V_VALID) = 0 ||\n" + " \tif ((hpte[0] & HPTE_V_VALID) == 0 ||\n" " \t ((flags & H_AVPN) && (hpte[0] & ~0x7fUL) != avpn) ||\n" "@@ -251,7 +256,7 @@ long kvmppc_h_bulk_remove(struct kvm_vcpu *vcpu)\n" " \t\t\tbreak;\n" @@ -178,9 +178,9 @@ "-\twhile (!lock_hpte(hpte, HPTE_V_HVLOCK))\n" "+\twhile (!try_lock_hpte(hpte, HPTE_V_HVLOCK))\n" " \t\tcpu_relax();\n" - " \tif ((hpte[0] & HPTE_V_VALID) = 0 ||\n" + " \tif ((hpte[0] & HPTE_V_VALID) == 0 ||\n" " \t ((flags & H_AVPN) && (hpte[0] & ~0x7fUL) != avpn)) {\n" "-- \n" 1.7.5.4 -87132ff290a4bbdd9605ee683719f8b810ac63fa67d3ecb60a1e01da0cc25690 +a0a07b46aa6d7bff43129dc45720d52ada6b7ddda82078bf39c4b10e62e2eb04
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.