diff for duplicates of <20111206061056.GN12389@drongo> diff --git a/a/1.txt b/N1/1.txt index 16b2973..e7c3dbc 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -86,7 +86,7 @@ index 90e6658..9a59b6d 100644 +static inline bool hpte_write_permission(unsigned long pp, unsigned long key) +{ + if (key) -+ return pp = PP_RWRW; ++ return pp == PP_RWRW; + return pp <= PP_RWRW; +} + @@ -277,7 +277,7 @@ index b904c40..2d31519 100644 + else + mask = ESID_MASK; + -+ if (((vcpu->arch.slb[i].orige ^ eaddr) & mask) = 0) ++ if (((vcpu->arch.slb[i].orige ^ eaddr) & mask) == 0) + return &vcpu->arch.slb[i]; + } + return NULL; @@ -370,7 +370,7 @@ index b904c40..2d31519 100644 + unsigned int mask; + + mask = 0x10000000; -+ if ((instr & 0xfc000000) = 0x7c000000) ++ if ((instr & 0xfc000000) == 0x7c000000) + mask = 0x100; /* major opcode 31 */ + return (instr & mask) != 0; +} @@ -387,9 +387,9 @@ index b904c40..2d31519 100644 + * kvmppc_ld returns. + * If we fail, we just return to the guest and try executing it again. + */ -+ if (vcpu->arch.last_inst = KVM_INST_FETCH_FAILED) { ++ if (vcpu->arch.last_inst == KVM_INST_FETCH_FAILED) { + ret = kvmppc_ld(vcpu, &srr0, sizeof(u32), &last_inst, false); -+ if (ret != EMULATE_DONE || last_inst = KVM_INST_FETCH_FAILED) ++ if (ret != EMULATE_DONE || last_inst == KVM_INST_FETCH_FAILED) + return RESUME_GUEST; + vcpu->arch.last_inst = last_inst; + } @@ -552,7 +552,7 @@ index b600f8c..d58a885 100644 + /* PPC970 can't do emulated MMIO */ + if (!cpu_has_feature(CPU_FTR_ARCH_206)) + return H_PARAMETER; -+ /* Emulated MMIO - mark this with key1 */ ++ /* Emulated MMIO - mark this with key=31 */ + pteh |= HPTE_V_ABSENT; + ptel |= HPTE_R_KEY_HI | HPTE_R_KEY_LO; + goto do_insert; @@ -575,11 +575,11 @@ index b600f8c..d58a885 100644 + do_insert: if (pte_index >= HPT_NPTE) return H_PARAMETER; - if (likely((flags & H_EXACT) = 0)) { + if (likely((flags & H_EXACT) == 0)) { @@ -187,7 +197,8 @@ long kvmppc_h_enter(struct kvm_vcpu *vcpu, unsigned long flags, hpte = (unsigned long *)(kvm->arch.hpt_virt + (pte_index << 4)); for (i = 0; i < 8; ++i) { - if ((*hpte & HPTE_V_VALID) = 0 && + if ((*hpte & HPTE_V_VALID) == 0 && - try_lock_hpte(hpte, HPTE_V_HVLOCK | HPTE_V_VALID)) + try_lock_hpte(hpte, HPTE_V_HVLOCK | HPTE_V_VALID | + HPTE_V_ABSENT)) @@ -590,7 +590,7 @@ index b600f8c..d58a885 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) + if (!(*hpte & (HPTE_V_VALID | HPTE_V_ABSENT))) break; *hpte &= ~HPTE_V_HVLOCK; @@ -631,8 +631,8 @@ index b600f8c..d58a885 100644 hpte = (unsigned long *)(kvm->arch.hpt_virt + (pte_index << 4)); while (!try_lock_hpte(hpte, HPTE_V_HVLOCK)) cpu_relax(); -- if ((hpte[0] & HPTE_V_VALID) = 0 || -+ if ((hpte[0] & (HPTE_V_ABSENT | HPTE_V_VALID)) = 0 || +- if ((hpte[0] & HPTE_V_VALID) == 0 || ++ if ((hpte[0] & (HPTE_V_ABSENT | HPTE_V_VALID)) == 0 || ((flags & H_AVPN) && (hpte[0] & ~0x7fUL) != avpn) || ((flags & H_ANDCOND) && (hpte[0] & avpn) != 0)) { hpte[0] &= ~HPTE_V_HVLOCK; @@ -683,14 +683,14 @@ index b600f8c..d58a885 100644 hpte = (unsigned long *)(kvm->arch.hpt_virt + (pte_index << 4)); while (!try_lock_hpte(hpte, HPTE_V_HVLOCK)) cpu_relax(); -- if ((hpte[0] & HPTE_V_VALID) = 0 || -+ if ((hpte[0] & (HPTE_V_ABSENT | HPTE_V_VALID)) = 0 || +- if ((hpte[0] & HPTE_V_VALID) == 0 || ++ if ((hpte[0] & (HPTE_V_ABSENT | HPTE_V_VALID)) == 0 || ((flags & H_AVPN) && (hpte[0] & ~0x7fUL) != avpn)) { hpte[0] &= ~HPTE_V_HVLOCK; return H_NOT_FOUND; } + - if (atomic_read(&kvm->online_vcpus) = 1) + if (atomic_read(&kvm->online_vcpus) == 1) flags |= H_LOCAL; v = hpte[0]; @@ -430,20 +451,22 @@ long kvmppc_h_protect(struct kvm_vcpu *vcpu, unsigned long flags, @@ -832,8 +832,8 @@ index b600f8c..d58a885 100644 + * page-size segment) page sizes, it is sufficient + * to check against the actual page size. + */ -+ if ((v & valid) && (v & mask) = val && -+ hpte_page_size(v, r) = (1ul << pshift)) ++ if ((v & valid) && (v & mask) == val && ++ hpte_page_size(v, r) == (1ul << pshift)) + /* Return with the HPTE still locked */ + return (hash << 3) + (i >> 1); + diff --git a/a/content_digest b/N1/content_digest index 710a008..b59481d 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 10/13] KVM: PPC: Implement MMIO emulation support for Book3S\0" - "Date\0Tue, 06 Dec 2011 06:10:56 +0000\0" + "Subject\0[PATCH 10/13] KVM: PPC: Implement MMIO emulation support for Book3S HV guests\0" + "Date\0Tue, 6 Dec 2011 17:10:56 +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" "This provides the low-level support for MMIO emulation in Book3S HV\n" @@ -96,7 +96,7 @@ "+static inline bool hpte_write_permission(unsigned long pp, unsigned long key)\n" "+{\n" "+\tif (key)\n" - "+\t\treturn pp = PP_RWRW;\n" + "+\t\treturn pp == PP_RWRW;\n" "+\treturn pp <= PP_RWRW;\n" "+}\n" "+\n" @@ -287,7 +287,7 @@ "+\t\telse\n" "+\t\t\tmask = ESID_MASK;\n" "+\n" - "+\t\tif (((vcpu->arch.slb[i].orige ^ eaddr) & mask) = 0)\n" + "+\t\tif (((vcpu->arch.slb[i].orige ^ eaddr) & mask) == 0)\n" "+\t\t\treturn &vcpu->arch.slb[i];\n" "+\t}\n" "+\treturn NULL;\n" @@ -380,7 +380,7 @@ "+\tunsigned int mask;\n" "+\n" "+\tmask = 0x10000000;\n" - "+\tif ((instr & 0xfc000000) = 0x7c000000)\n" + "+\tif ((instr & 0xfc000000) == 0x7c000000)\n" "+\t\tmask = 0x100;\t\t/* major opcode 31 */\n" "+\treturn (instr & mask) != 0;\n" "+}\n" @@ -397,9 +397,9 @@ "+\t * kvmppc_ld returns.\n" "+\t * If we fail, we just return to the guest and try executing it again.\n" "+\t */\n" - "+\tif (vcpu->arch.last_inst = KVM_INST_FETCH_FAILED) {\n" + "+\tif (vcpu->arch.last_inst == KVM_INST_FETCH_FAILED) {\n" "+\t\tret = kvmppc_ld(vcpu, &srr0, sizeof(u32), &last_inst, false);\n" - "+\t\tif (ret != EMULATE_DONE || last_inst = KVM_INST_FETCH_FAILED)\n" + "+\t\tif (ret != EMULATE_DONE || last_inst == KVM_INST_FETCH_FAILED)\n" "+\t\t\treturn RESUME_GUEST;\n" "+\t\tvcpu->arch.last_inst = last_inst;\n" "+\t}\n" @@ -562,7 +562,7 @@ "+\t\t/* PPC970 can't do emulated MMIO */\n" "+\t\tif (!cpu_has_feature(CPU_FTR_ARCH_206))\n" "+\t\t\treturn H_PARAMETER;\n" - "+\t\t/* Emulated MMIO - mark this with key1 */\n" + "+\t\t/* Emulated MMIO - mark this with key=31 */\n" "+\t\tpteh |= HPTE_V_ABSENT;\n" "+\t\tptel |= HPTE_R_KEY_HI | HPTE_R_KEY_LO;\n" "+\t\tgoto do_insert;\n" @@ -585,11 +585,11 @@ "+ do_insert:\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" "@@ -187,7 +197,8 @@ long kvmppc_h_enter(struct kvm_vcpu *vcpu, unsigned long flags,\n" " \t\thpte = (unsigned long *)(kvm->arch.hpt_virt + (pte_index << 4));\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 try_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\t\t HPTE_V_ABSENT))\n" @@ -600,7 +600,7 @@ " \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\tif (!(*hpte & (HPTE_V_VALID | HPTE_V_ABSENT)))\n" " \t\t\t\t\tbreak;\n" " \t\t\t\t*hpte &= ~HPTE_V_HVLOCK;\n" @@ -641,8 +641,8 @@ " \thpte = (unsigned long *)(kvm->arch.hpt_virt + (pte_index << 4));\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_ABSENT | HPTE_V_VALID)) = 0 ||\n" + "-\tif ((hpte[0] & HPTE_V_VALID) == 0 ||\n" + "+\tif ((hpte[0] & (HPTE_V_ABSENT | HPTE_V_VALID)) == 0 ||\n" " \t ((flags & H_AVPN) && (hpte[0] & ~0x7fUL) != avpn) ||\n" " \t ((flags & H_ANDCOND) && (hpte[0] & avpn) != 0)) {\n" " \t\thpte[0] &= ~HPTE_V_HVLOCK;\n" @@ -693,14 +693,14 @@ " \thpte = (unsigned long *)(kvm->arch.hpt_virt + (pte_index << 4));\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_ABSENT | HPTE_V_VALID)) = 0 ||\n" + "-\tif ((hpte[0] & HPTE_V_VALID) == 0 ||\n" + "+\tif ((hpte[0] & (HPTE_V_ABSENT | HPTE_V_VALID)) == 0 ||\n" " \t ((flags & H_AVPN) && (hpte[0] & ~0x7fUL) != avpn)) {\n" " \t\thpte[0] &= ~HPTE_V_HVLOCK;\n" " \t\treturn H_NOT_FOUND;\n" " \t}\n" "+\n" - " \tif (atomic_read(&kvm->online_vcpus) = 1)\n" + " \tif (atomic_read(&kvm->online_vcpus) == 1)\n" " \t\tflags |= H_LOCAL;\n" " \tv = hpte[0];\n" "@@ -430,20 +451,22 @@ long kvmppc_h_protect(struct kvm_vcpu *vcpu, unsigned long flags,\n" @@ -842,8 +842,8 @@ "+\t\t\t * page-size segment) page sizes, it is sufficient\n" "+\t\t\t * to check against the actual page size.\n" "+\t\t\t */\n" - "+\t\t\tif ((v & valid) && (v & mask) = val &&\n" - "+\t\t\t hpte_page_size(v, r) = (1ul << pshift))\n" + "+\t\t\tif ((v & valid) && (v & mask) == val &&\n" + "+\t\t\t hpte_page_size(v, r) == (1ul << pshift))\n" "+\t\t\t\t/* Return with the HPTE still locked */\n" "+\t\t\t\treturn (hash << 3) + (i >> 1);\n" "+\n" @@ -1115,4 +1115,4 @@ "-- \n" 1.7.5.4 -7d53caacef3a4098eb59d0efa756c7ad7e4e3e318a50fc8e26755bf33303b946 +4376b80d196adf5478108a1af80662eb102f9066f3fa1aa9503bc3b0f6d908df
diff --git a/a/1.txt b/N2/1.txt index 16b2973..e7c3dbc 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -86,7 +86,7 @@ index 90e6658..9a59b6d 100644 +static inline bool hpte_write_permission(unsigned long pp, unsigned long key) +{ + if (key) -+ return pp = PP_RWRW; ++ return pp == PP_RWRW; + return pp <= PP_RWRW; +} + @@ -277,7 +277,7 @@ index b904c40..2d31519 100644 + else + mask = ESID_MASK; + -+ if (((vcpu->arch.slb[i].orige ^ eaddr) & mask) = 0) ++ if (((vcpu->arch.slb[i].orige ^ eaddr) & mask) == 0) + return &vcpu->arch.slb[i]; + } + return NULL; @@ -370,7 +370,7 @@ index b904c40..2d31519 100644 + unsigned int mask; + + mask = 0x10000000; -+ if ((instr & 0xfc000000) = 0x7c000000) ++ if ((instr & 0xfc000000) == 0x7c000000) + mask = 0x100; /* major opcode 31 */ + return (instr & mask) != 0; +} @@ -387,9 +387,9 @@ index b904c40..2d31519 100644 + * kvmppc_ld returns. + * If we fail, we just return to the guest and try executing it again. + */ -+ if (vcpu->arch.last_inst = KVM_INST_FETCH_FAILED) { ++ if (vcpu->arch.last_inst == KVM_INST_FETCH_FAILED) { + ret = kvmppc_ld(vcpu, &srr0, sizeof(u32), &last_inst, false); -+ if (ret != EMULATE_DONE || last_inst = KVM_INST_FETCH_FAILED) ++ if (ret != EMULATE_DONE || last_inst == KVM_INST_FETCH_FAILED) + return RESUME_GUEST; + vcpu->arch.last_inst = last_inst; + } @@ -552,7 +552,7 @@ index b600f8c..d58a885 100644 + /* PPC970 can't do emulated MMIO */ + if (!cpu_has_feature(CPU_FTR_ARCH_206)) + return H_PARAMETER; -+ /* Emulated MMIO - mark this with key1 */ ++ /* Emulated MMIO - mark this with key=31 */ + pteh |= HPTE_V_ABSENT; + ptel |= HPTE_R_KEY_HI | HPTE_R_KEY_LO; + goto do_insert; @@ -575,11 +575,11 @@ index b600f8c..d58a885 100644 + do_insert: if (pte_index >= HPT_NPTE) return H_PARAMETER; - if (likely((flags & H_EXACT) = 0)) { + if (likely((flags & H_EXACT) == 0)) { @@ -187,7 +197,8 @@ long kvmppc_h_enter(struct kvm_vcpu *vcpu, unsigned long flags, hpte = (unsigned long *)(kvm->arch.hpt_virt + (pte_index << 4)); for (i = 0; i < 8; ++i) { - if ((*hpte & HPTE_V_VALID) = 0 && + if ((*hpte & HPTE_V_VALID) == 0 && - try_lock_hpte(hpte, HPTE_V_HVLOCK | HPTE_V_VALID)) + try_lock_hpte(hpte, HPTE_V_HVLOCK | HPTE_V_VALID | + HPTE_V_ABSENT)) @@ -590,7 +590,7 @@ index b600f8c..d58a885 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) + if (!(*hpte & (HPTE_V_VALID | HPTE_V_ABSENT))) break; *hpte &= ~HPTE_V_HVLOCK; @@ -631,8 +631,8 @@ index b600f8c..d58a885 100644 hpte = (unsigned long *)(kvm->arch.hpt_virt + (pte_index << 4)); while (!try_lock_hpte(hpte, HPTE_V_HVLOCK)) cpu_relax(); -- if ((hpte[0] & HPTE_V_VALID) = 0 || -+ if ((hpte[0] & (HPTE_V_ABSENT | HPTE_V_VALID)) = 0 || +- if ((hpte[0] & HPTE_V_VALID) == 0 || ++ if ((hpte[0] & (HPTE_V_ABSENT | HPTE_V_VALID)) == 0 || ((flags & H_AVPN) && (hpte[0] & ~0x7fUL) != avpn) || ((flags & H_ANDCOND) && (hpte[0] & avpn) != 0)) { hpte[0] &= ~HPTE_V_HVLOCK; @@ -683,14 +683,14 @@ index b600f8c..d58a885 100644 hpte = (unsigned long *)(kvm->arch.hpt_virt + (pte_index << 4)); while (!try_lock_hpte(hpte, HPTE_V_HVLOCK)) cpu_relax(); -- if ((hpte[0] & HPTE_V_VALID) = 0 || -+ if ((hpte[0] & (HPTE_V_ABSENT | HPTE_V_VALID)) = 0 || +- if ((hpte[0] & HPTE_V_VALID) == 0 || ++ if ((hpte[0] & (HPTE_V_ABSENT | HPTE_V_VALID)) == 0 || ((flags & H_AVPN) && (hpte[0] & ~0x7fUL) != avpn)) { hpte[0] &= ~HPTE_V_HVLOCK; return H_NOT_FOUND; } + - if (atomic_read(&kvm->online_vcpus) = 1) + if (atomic_read(&kvm->online_vcpus) == 1) flags |= H_LOCAL; v = hpte[0]; @@ -430,20 +451,22 @@ long kvmppc_h_protect(struct kvm_vcpu *vcpu, unsigned long flags, @@ -832,8 +832,8 @@ index b600f8c..d58a885 100644 + * page-size segment) page sizes, it is sufficient + * to check against the actual page size. + */ -+ if ((v & valid) && (v & mask) = val && -+ hpte_page_size(v, r) = (1ul << pshift)) ++ if ((v & valid) && (v & mask) == val && ++ hpte_page_size(v, r) == (1ul << pshift)) + /* Return with the HPTE still locked */ + return (hash << 3) + (i >> 1); + diff --git a/a/content_digest b/N2/content_digest index 710a008..da257ec 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 10/13] KVM: PPC: Implement MMIO emulation support for Book3S\0" - "Date\0Tue, 06 Dec 2011 06:10:56 +0000\0" + "Subject\0[PATCH 10/13] KVM: PPC: Implement MMIO emulation support for Book3S HV guests\0" + "Date\0Tue, 6 Dec 2011 17:10:56 +1100\0" "To\0Alexander Graf <agraf@suse.de>\0" "Cc\0linuxppc-dev@ozlabs.org" kvm-ppc@vger.kernel.org @@ -96,7 +96,7 @@ "+static inline bool hpte_write_permission(unsigned long pp, unsigned long key)\n" "+{\n" "+\tif (key)\n" - "+\t\treturn pp = PP_RWRW;\n" + "+\t\treturn pp == PP_RWRW;\n" "+\treturn pp <= PP_RWRW;\n" "+}\n" "+\n" @@ -287,7 +287,7 @@ "+\t\telse\n" "+\t\t\tmask = ESID_MASK;\n" "+\n" - "+\t\tif (((vcpu->arch.slb[i].orige ^ eaddr) & mask) = 0)\n" + "+\t\tif (((vcpu->arch.slb[i].orige ^ eaddr) & mask) == 0)\n" "+\t\t\treturn &vcpu->arch.slb[i];\n" "+\t}\n" "+\treturn NULL;\n" @@ -380,7 +380,7 @@ "+\tunsigned int mask;\n" "+\n" "+\tmask = 0x10000000;\n" - "+\tif ((instr & 0xfc000000) = 0x7c000000)\n" + "+\tif ((instr & 0xfc000000) == 0x7c000000)\n" "+\t\tmask = 0x100;\t\t/* major opcode 31 */\n" "+\treturn (instr & mask) != 0;\n" "+}\n" @@ -397,9 +397,9 @@ "+\t * kvmppc_ld returns.\n" "+\t * If we fail, we just return to the guest and try executing it again.\n" "+\t */\n" - "+\tif (vcpu->arch.last_inst = KVM_INST_FETCH_FAILED) {\n" + "+\tif (vcpu->arch.last_inst == KVM_INST_FETCH_FAILED) {\n" "+\t\tret = kvmppc_ld(vcpu, &srr0, sizeof(u32), &last_inst, false);\n" - "+\t\tif (ret != EMULATE_DONE || last_inst = KVM_INST_FETCH_FAILED)\n" + "+\t\tif (ret != EMULATE_DONE || last_inst == KVM_INST_FETCH_FAILED)\n" "+\t\t\treturn RESUME_GUEST;\n" "+\t\tvcpu->arch.last_inst = last_inst;\n" "+\t}\n" @@ -562,7 +562,7 @@ "+\t\t/* PPC970 can't do emulated MMIO */\n" "+\t\tif (!cpu_has_feature(CPU_FTR_ARCH_206))\n" "+\t\t\treturn H_PARAMETER;\n" - "+\t\t/* Emulated MMIO - mark this with key1 */\n" + "+\t\t/* Emulated MMIO - mark this with key=31 */\n" "+\t\tpteh |= HPTE_V_ABSENT;\n" "+\t\tptel |= HPTE_R_KEY_HI | HPTE_R_KEY_LO;\n" "+\t\tgoto do_insert;\n" @@ -585,11 +585,11 @@ "+ do_insert:\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" "@@ -187,7 +197,8 @@ long kvmppc_h_enter(struct kvm_vcpu *vcpu, unsigned long flags,\n" " \t\thpte = (unsigned long *)(kvm->arch.hpt_virt + (pte_index << 4));\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 try_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\t\t HPTE_V_ABSENT))\n" @@ -600,7 +600,7 @@ " \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\tif (!(*hpte & (HPTE_V_VALID | HPTE_V_ABSENT)))\n" " \t\t\t\t\tbreak;\n" " \t\t\t\t*hpte &= ~HPTE_V_HVLOCK;\n" @@ -641,8 +641,8 @@ " \thpte = (unsigned long *)(kvm->arch.hpt_virt + (pte_index << 4));\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_ABSENT | HPTE_V_VALID)) = 0 ||\n" + "-\tif ((hpte[0] & HPTE_V_VALID) == 0 ||\n" + "+\tif ((hpte[0] & (HPTE_V_ABSENT | HPTE_V_VALID)) == 0 ||\n" " \t ((flags & H_AVPN) && (hpte[0] & ~0x7fUL) != avpn) ||\n" " \t ((flags & H_ANDCOND) && (hpte[0] & avpn) != 0)) {\n" " \t\thpte[0] &= ~HPTE_V_HVLOCK;\n" @@ -693,14 +693,14 @@ " \thpte = (unsigned long *)(kvm->arch.hpt_virt + (pte_index << 4));\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_ABSENT | HPTE_V_VALID)) = 0 ||\n" + "-\tif ((hpte[0] & HPTE_V_VALID) == 0 ||\n" + "+\tif ((hpte[0] & (HPTE_V_ABSENT | HPTE_V_VALID)) == 0 ||\n" " \t ((flags & H_AVPN) && (hpte[0] & ~0x7fUL) != avpn)) {\n" " \t\thpte[0] &= ~HPTE_V_HVLOCK;\n" " \t\treturn H_NOT_FOUND;\n" " \t}\n" "+\n" - " \tif (atomic_read(&kvm->online_vcpus) = 1)\n" + " \tif (atomic_read(&kvm->online_vcpus) == 1)\n" " \t\tflags |= H_LOCAL;\n" " \tv = hpte[0];\n" "@@ -430,20 +451,22 @@ long kvmppc_h_protect(struct kvm_vcpu *vcpu, unsigned long flags,\n" @@ -842,8 +842,8 @@ "+\t\t\t * page-size segment) page sizes, it is sufficient\n" "+\t\t\t * to check against the actual page size.\n" "+\t\t\t */\n" - "+\t\t\tif ((v & valid) && (v & mask) = val &&\n" - "+\t\t\t hpte_page_size(v, r) = (1ul << pshift))\n" + "+\t\t\tif ((v & valid) && (v & mask) == val &&\n" + "+\t\t\t hpte_page_size(v, r) == (1ul << pshift))\n" "+\t\t\t\t/* Return with the HPTE still locked */\n" "+\t\t\t\treturn (hash << 3) + (i >> 1);\n" "+\n" @@ -1115,4 +1115,4 @@ "-- \n" 1.7.5.4 -7d53caacef3a4098eb59d0efa756c7ad7e4e3e318a50fc8e26755bf33303b946 +f51525c73ad9bfdb25d97dc7ed9118e73fd625ad5c7c897023bc6fb26b291848
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.