diff for duplicates of <1358463041-25922-3-git-send-email-agraf@suse.de> diff --git a/a/1.txt b/N1/1.txt index 3ae137d..f71fa44 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -128,7 +128,7 @@ index 0000000..d950a71 + struct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu); + int esel = get_tlb_esel_bit(vcpu); + -+ if (tlbsel = 0) { ++ if (tlbsel == 0) { + esel &= vcpu_e500->gtlb_params[0].ways - 1; + esel += gtlb0_set_base(vcpu_e500, vcpu->arch.shared->mas2); + } else { @@ -146,7 +146,7 @@ index 0000000..d950a71 + unsigned int set_base, offset; + int i; + -+ if (tlbsel = 0) { ++ if (tlbsel == 0) { + set_base = gtlb0_set_base(vcpu_e500, eaddr); + size = vcpu_e500->gtlb_params[0].ways; + } else { @@ -159,7 +159,8 @@ index 0000000..d950a71 + offset = vcpu_e500->gtlb_offset[tlbsel]; + + for (i = 0; i < size; i++) { -+ struct kvm_book3e_206_tlb_entry *tlbe + &vcpu_e500->gtlb_arch[offset + set_base + i]; ++ struct kvm_book3e_206_tlb_entry *tlbe = ++ &vcpu_e500->gtlb_arch[offset + set_base + i]; + unsigned int tid; + + if (eaddr < get_tlb_eaddr(tlbe)) @@ -193,7 +194,7 @@ index 0000000..d950a71 + + /* since we only have two TLBs, only lower bit is used. */ + tlbsel = (vcpu->arch.shared->mas4 >> 28) & 0x1; -+ victim = (tlbsel = 0) ? gtlb0_get_next_victim(vcpu_e500) : 0; ++ victim = (tlbsel == 0) ? gtlb0_get_next_victim(vcpu_e500) : 0; + tsized = (vcpu->arch.shared->mas4 >> 7) & 0x1f; + + vcpu->arch.shared->mas0 = MAS0_TLBSEL(tlbsel) | MAS0_ESEL(victim) @@ -221,16 +222,19 @@ index 0000000..d950a71 + offset = vcpu_e500->gtlb_offset[1]; + + for (i = 0; i < size; i++) { -+ struct kvm_book3e_206_tlb_entry *tlbe + &vcpu_e500->gtlb_arch[offset + i]; ++ struct kvm_book3e_206_tlb_entry *tlbe = ++ &vcpu_e500->gtlb_arch[offset + i]; + + if (!get_tlb_v(tlbe)) + continue; + + eaddr = get_tlb_eaddr(tlbe); -+ vcpu_e500->tlb1_min_eaddr + min(vcpu_e500->tlb1_min_eaddr, eaddr); ++ vcpu_e500->tlb1_min_eaddr = ++ min(vcpu_e500->tlb1_min_eaddr, eaddr); + + eaddr = get_tlb_end(tlbe); -+ vcpu_e500->tlb1_max_eaddr + max(vcpu_e500->tlb1_max_eaddr, eaddr); ++ vcpu_e500->tlb1_max_eaddr = ++ max(vcpu_e500->tlb1_max_eaddr, eaddr); + } +} + @@ -243,8 +247,8 @@ index 0000000..d950a71 + start = get_tlb_eaddr(gtlbe) & ~(size - 1); + end = start + size - 1; + -+ return vcpu_e500->tlb1_min_eaddr = start || -+ vcpu_e500->tlb1_max_eaddr = end; ++ return vcpu_e500->tlb1_min_eaddr == start || ++ vcpu_e500->tlb1_max_eaddr == end; +} + +/* This function is supposed to be called for a adding a new valid tlb entry */ @@ -269,12 +273,13 @@ index 0000000..d950a71 + struct kvmppc_vcpu_e500 *vcpu_e500, + int tlbsel, int esel) +{ -+ struct kvm_book3e_206_tlb_entry *gtlbe + get_entry(vcpu_e500, tlbsel, esel); ++ struct kvm_book3e_206_tlb_entry *gtlbe = ++ get_entry(vcpu_e500, tlbsel, esel); + + if (unlikely(get_tlb_iprot(gtlbe))) + return -1; + -+ if (tlbsel = 1 && kvmppc_need_recalc_tlb1map_range(vcpu_e500, gtlbe)) ++ if (tlbsel == 1 && kvmppc_need_recalc_tlb1map_range(vcpu_e500, gtlbe)) + kvmppc_recalc_tlb1map_range(vcpu_e500); + + gtlbe->mas1 = 0; @@ -339,7 +344,7 @@ index 0000000..d950a71 + for (esel = 0; esel < vcpu_e500->gtlb_params[tlbsel].entries; esel++) { + tlbe = get_entry(vcpu_e500, tlbsel, esel); + tid = get_tlb_tid(tlbe); -+ if (type = 0 || tid = pid) { ++ if (type == 0 || tid == pid) { + inval_gtlbe_on_host(vcpu_e500, tlbsel, esel); + kvmppc_e500_gtlbe_invalidate(vcpu_e500, tlbsel, esel); + } @@ -366,10 +371,10 @@ index 0000000..d950a71 + struct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu); + int pid = get_cur_spid(vcpu); + -+ if (type = 0 || type = 1) { ++ if (type == 0 || type == 1) { + tlbilx_all(vcpu_e500, 0, pid, type); + tlbilx_all(vcpu_e500, 1, pid, type); -+ } else if (type = 3) { ++ } else if (type == 3) { + tlbilx_one(vcpu_e500, pid, ea); + } + @@ -424,12 +429,13 @@ index 0000000..d950a71 + + /* since we only have two TLBs, only lower bit is used. */ + tlbsel = vcpu->arch.shared->mas4 >> 28 & 0x1; -+ victim = (tlbsel = 0) ? gtlb0_get_next_victim(vcpu_e500) : 0; ++ victim = (tlbsel == 0) ? gtlb0_get_next_victim(vcpu_e500) : 0; + + vcpu->arch.shared->mas0 = MAS0_TLBSEL(tlbsel) + | MAS0_ESEL(victim) + | MAS0_NV(vcpu_e500->gtlb_nv[tlbsel]); -+ vcpu->arch.shared->mas1 + (vcpu->arch.shared->mas6 & MAS6_SPID0) ++ vcpu->arch.shared->mas1 = ++ (vcpu->arch.shared->mas6 & MAS6_SPID0) + | (vcpu->arch.shared->mas6 & (MAS6_SAS ? MAS1_TS : 0)) + | (vcpu->arch.shared->mas4 & MAS4_TSIZED(~0)); + vcpu->arch.shared->mas2 &= MAS2_EPN; @@ -457,7 +463,7 @@ index 0000000..d950a71 + + if (get_tlb_v(gtlbe)) { + inval_gtlbe_on_host(vcpu_e500, tlbsel, esel); -+ if ((tlbsel = 1) && ++ if ((tlbsel == 1) && + kvmppc_need_recalc_tlb1map_range(vcpu_e500, gtlbe)) + recal = 1; + } @@ -471,7 +477,7 @@ index 0000000..d950a71 + trace_kvm_booke206_gtlb_write(vcpu->arch.shared->mas0, gtlbe->mas1, + gtlbe->mas2, gtlbe->mas7_3); + -+ if (tlbsel = 1) { ++ if (tlbsel == 1) { + /* + * If a valid tlb1 entry is overwritten then recalculate the + * min/max TLB1 map address range otherwise no need to look @@ -488,7 +494,7 @@ index 0000000..d950a71 + u64 eaddr = get_tlb_eaddr(gtlbe); + u64 raddr = get_tlb_raddr(gtlbe); + -+ if (tlbsel = 0) { ++ if (tlbsel == 0) { + gtlbe->mas1 &= ~MAS1_TSIZE(~0); + gtlbe->mas1 |= MAS1_TSIZE(BOOK3E_PAGESZ_4K); + } @@ -806,7 +812,8 @@ index 0000000..d950a71 + vcpu_e500->gtlb_params[1].entries = KVM_E500_TLB1_SIZE; + + vcpu_e500->gtlb_params[0].ways = KVM_E500_TLB0_WAY_NUM; -+ vcpu_e500->gtlb_params[0].sets + KVM_E500_TLB0_SIZE / KVM_E500_TLB0_WAY_NUM; ++ vcpu_e500->gtlb_params[0].sets = ++ KVM_E500_TLB0_SIZE / KVM_E500_TLB0_WAY_NUM; + + vcpu_e500->gtlb_params[1].ways = KVM_E500_TLB1_SIZE; + vcpu_e500->gtlb_params[1].sets = 1; @@ -840,12 +847,14 @@ index 0000000..d950a71 + vcpu->arch.tlbcfg[0] = mfspr(SPRN_TLB0CFG) & + ~(TLBnCFG_N_ENTRY | TLBnCFG_ASSOC); + vcpu->arch.tlbcfg[0] |= vcpu_e500->gtlb_params[0].entries; -+ vcpu->arch.tlbcfg[0] |+ vcpu_e500->gtlb_params[0].ways << TLBnCFG_ASSOC_SHIFT; ++ vcpu->arch.tlbcfg[0] |= ++ vcpu_e500->gtlb_params[0].ways << TLBnCFG_ASSOC_SHIFT; + + vcpu->arch.tlbcfg[1] = mfspr(SPRN_TLB1CFG) & + ~(TLBnCFG_N_ENTRY | TLBnCFG_ASSOC); + vcpu->arch.tlbcfg[1] |= vcpu_e500->gtlb_params[1].entries; -+ vcpu->arch.tlbcfg[1] |+ vcpu_e500->gtlb_params[1].ways << TLBnCFG_ASSOC_SHIFT; ++ vcpu->arch.tlbcfg[1] |= ++ vcpu_e500->gtlb_params[1].ways << TLBnCFG_ASSOC_SHIFT; + + kvmppc_recalc_tlb1map_range(vcpu_e500); + return 0; @@ -999,7 +1008,7 @@ index 0000000..3bb2154 +{ + u32 mas0; + -+ if (tlbsel = 0) { ++ if (tlbsel == 0) { + mas0 = get_host_mas0(stlbe->mas2); + __write_host_tlbe(stlbe, mas0); + } else { @@ -1040,9 +1049,10 @@ index 0000000..3bb2154 +void inval_gtlbe_on_host(struct kvmppc_vcpu_e500 *vcpu_e500, int tlbsel, + int esel) +{ -+ struct kvm_book3e_206_tlb_entry *gtlbe + get_entry(vcpu_e500, tlbsel, esel); ++ struct kvm_book3e_206_tlb_entry *gtlbe = ++ get_entry(vcpu_e500, tlbsel, esel); + -+ if (tlbsel = 1 && ++ if (tlbsel == 1 && + vcpu_e500->gtlb_priv[1][esel].ref.flags & E500_TLB_BITMAP) { + u64 tmp = vcpu_e500->g2h_tlb1_map[esel]; + int hw_tlb_indx; @@ -1111,7 +1121,8 @@ index 0000000..3bb2154 + int i; + + for (i = 0; i < vcpu_e500->gtlb_params[tlbsel].entries; i++) { -+ struct tlbe_ref *ref + &vcpu_e500->gtlb_priv[tlbsel][i].ref; ++ struct tlbe_ref *ref = ++ &vcpu_e500->gtlb_priv[tlbsel][i].ref; + kvmppc_e500_ref_release(ref); + } +} @@ -1124,7 +1135,8 @@ index 0000000..3bb2154 + kvmppc_e500_tlbil_all(vcpu_e500); + + for (i = 0; i < host_tlb_params[stlbsel].entries; i++) { -+ struct tlbe_ref *ref + &vcpu_e500->tlb_refs[stlbsel][i]; ++ struct tlbe_ref *ref = ++ &vcpu_e500->tlb_refs[stlbsel][i]; + kvmppc_e500_ref_release(ref); + } + @@ -1184,7 +1196,7 @@ index 0000000..3bb2154 + slot = gfn_to_memslot(vcpu_e500->vcpu.kvm, gfn); + hva = gfn_to_hva_memslot(slot, gfn); + -+ if (tlbsel = 1) { ++ if (tlbsel == 1) { + struct vm_area_struct *vma; + down_read(¤t->mm->mmap_sem); + @@ -1244,7 +1256,8 @@ index 0000000..3bb2154 + continue; + if (gfn_end + pfn - gfn > end) + continue; -+ if ((gfn & (tsize_pages - 1)) !+ (pfn & (tsize_pages - 1))) ++ if ((gfn & (tsize_pages - 1)) != ++ (pfn & (tsize_pages - 1))) + continue; + + gvaddr &= ~((tsize_pages << PAGE_SHIFT) - 1); @@ -1460,8 +1473,8 @@ index 0000000..3bb2154 + * architecturally possible -- e.g. in some weird nested + * virtualization case. + */ -+ if (host_tlb_params[0].entries = 0 || -+ host_tlb_params[1].entries = 0) { ++ if (host_tlb_params[0].entries == 0 || ++ host_tlb_params[1].entries == 0) { + pr_err("%s: need to know host tlb size\n", __func__); + return -ENODEV; + } @@ -1473,22 +1486,25 @@ index 0000000..3bb2154 + if (!is_power_of_2(host_tlb_params[0].entries) || + !is_power_of_2(host_tlb_params[0].ways) || + host_tlb_params[0].entries < host_tlb_params[0].ways || -+ host_tlb_params[0].ways = 0) { ++ host_tlb_params[0].ways == 0) { + pr_err("%s: bad tlb0 host config: %u entries %u ways\n", + __func__, host_tlb_params[0].entries, + host_tlb_params[0].ways); + return -ENODEV; + } + -+ host_tlb_params[0].sets + host_tlb_params[0].entries / host_tlb_params[0].ways; ++ host_tlb_params[0].sets = ++ host_tlb_params[0].entries / host_tlb_params[0].ways; + host_tlb_params[1].sets = 1; + -+ vcpu_e500->tlb_refs[0] + kzalloc(sizeof(struct tlbe_ref) * host_tlb_params[0].entries, ++ vcpu_e500->tlb_refs[0] = ++ kzalloc(sizeof(struct tlbe_ref) * host_tlb_params[0].entries, + GFP_KERNEL); + if (!vcpu_e500->tlb_refs[0]) + goto err; + -+ vcpu_e500->tlb_refs[1] + kzalloc(sizeof(struct tlbe_ref) * host_tlb_params[1].entries, ++ vcpu_e500->tlb_refs[1] = ++ kzalloc(sizeof(struct tlbe_ref) * host_tlb_params[1].entries, + GFP_KERNEL); + if (!vcpu_e500->tlb_refs[1]) + goto err; @@ -1693,7 +1709,7 @@ index eda7be1..0000000 -{ - u32 mas0; - -- if (tlbsel = 0) { +- if (tlbsel == 0) { - mas0 = get_host_mas0(stlbe->mas2); - __write_host_tlbe(stlbe, mas0); - } else { @@ -1733,9 +1749,10 @@ index eda7be1..0000000 -static void inval_gtlbe_on_host(struct kvmppc_vcpu_e500 *vcpu_e500, - int tlbsel, int esel) -{ -- struct kvm_book3e_206_tlb_entry *gtlbe - get_entry(vcpu_e500, tlbsel, esel); +- struct kvm_book3e_206_tlb_entry *gtlbe = +- get_entry(vcpu_e500, tlbsel, esel); - -- if (tlbsel = 1 && +- if (tlbsel == 1 && - vcpu_e500->gtlb_priv[1][esel].ref.flags & E500_TLB_BITMAP) { - u64 tmp = vcpu_e500->g2h_tlb1_map[esel]; - int hw_tlb_indx; @@ -1785,7 +1802,7 @@ index eda7be1..0000000 - struct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu); - int esel = get_tlb_esel_bit(vcpu); - -- if (tlbsel = 0) { +- if (tlbsel == 0) { - esel &= vcpu_e500->gtlb_params[0].ways - 1; - esel += gtlb0_set_base(vcpu_e500, vcpu->arch.shared->mas2); - } else { @@ -1803,7 +1820,7 @@ index eda7be1..0000000 - unsigned int set_base, offset; - int i; - -- if (tlbsel = 0) { +- if (tlbsel == 0) { - set_base = gtlb0_set_base(vcpu_e500, eaddr); - size = vcpu_e500->gtlb_params[0].ways; - } else { @@ -1816,7 +1833,8 @@ index eda7be1..0000000 - offset = vcpu_e500->gtlb_offset[tlbsel]; - - for (i = 0; i < size; i++) { -- struct kvm_book3e_206_tlb_entry *tlbe - &vcpu_e500->gtlb_arch[offset + set_base + i]; +- struct kvm_book3e_206_tlb_entry *tlbe = +- &vcpu_e500->gtlb_arch[offset + set_base + i]; - unsigned int tid; - - if (eaddr < get_tlb_eaddr(tlbe)) @@ -1876,7 +1894,8 @@ index eda7be1..0000000 - int i; - - for (i = 0; i < vcpu_e500->gtlb_params[tlbsel].entries; i++) { -- struct tlbe_ref *ref - &vcpu_e500->gtlb_priv[tlbsel][i].ref; +- struct tlbe_ref *ref = +- &vcpu_e500->gtlb_priv[tlbsel][i].ref; - kvmppc_e500_ref_release(ref); - } -} @@ -1889,7 +1908,8 @@ index eda7be1..0000000 - kvmppc_e500_tlbil_all(vcpu_e500); - - for (i = 0; i < host_tlb_params[stlbsel].entries; i++) { -- struct tlbe_ref *ref - &vcpu_e500->tlb_refs[stlbsel][i]; +- struct tlbe_ref *ref = +- &vcpu_e500->tlb_refs[stlbsel][i]; - kvmppc_e500_ref_release(ref); - } - @@ -1912,7 +1932,7 @@ index eda7be1..0000000 - - /* since we only have two TLBs, only lower bit is used. */ - tlbsel = (vcpu->arch.shared->mas4 >> 28) & 0x1; -- victim = (tlbsel = 0) ? gtlb0_get_next_victim(vcpu_e500) : 0; +- victim = (tlbsel == 0) ? gtlb0_get_next_victim(vcpu_e500) : 0; - tsized = (vcpu->arch.shared->mas4 >> 7) & 0x1f; - - vcpu->arch.shared->mas0 = MAS0_TLBSEL(tlbsel) | MAS0_ESEL(victim) @@ -1974,7 +1994,7 @@ index eda7be1..0000000 - slot = gfn_to_memslot(vcpu_e500->vcpu.kvm, gfn); - hva = gfn_to_hva_memslot(slot, gfn); - -- if (tlbsel = 1) { +- if (tlbsel == 1) { - struct vm_area_struct *vma; - down_read(¤t->mm->mmap_sem); - @@ -2034,7 +2054,8 @@ index eda7be1..0000000 - continue; - if (gfn_end + pfn - gfn > end) - continue; -- if ((gfn & (tsize_pages - 1)) !- (pfn & (tsize_pages - 1))) +- if ((gfn & (tsize_pages - 1)) != +- (pfn & (tsize_pages - 1))) - continue; - - gvaddr &= ~((tsize_pages << PAGE_SHIFT) - 1); @@ -2149,16 +2170,19 @@ index eda7be1..0000000 - offset = vcpu_e500->gtlb_offset[1]; - - for (i = 0; i < size; i++) { -- struct kvm_book3e_206_tlb_entry *tlbe - &vcpu_e500->gtlb_arch[offset + i]; +- struct kvm_book3e_206_tlb_entry *tlbe = +- &vcpu_e500->gtlb_arch[offset + i]; - - if (!get_tlb_v(tlbe)) - continue; - - eaddr = get_tlb_eaddr(tlbe); -- vcpu_e500->tlb1_min_eaddr - min(vcpu_e500->tlb1_min_eaddr, eaddr); +- vcpu_e500->tlb1_min_eaddr = +- min(vcpu_e500->tlb1_min_eaddr, eaddr); - - eaddr = get_tlb_end(tlbe); -- vcpu_e500->tlb1_max_eaddr - max(vcpu_e500->tlb1_max_eaddr, eaddr); +- vcpu_e500->tlb1_max_eaddr = +- max(vcpu_e500->tlb1_max_eaddr, eaddr); - } -} - @@ -2171,8 +2195,8 @@ index eda7be1..0000000 - start = get_tlb_eaddr(gtlbe) & ~(size - 1); - end = start + size - 1; - -- return vcpu_e500->tlb1_min_eaddr = start || -- vcpu_e500->tlb1_max_eaddr = end; +- return vcpu_e500->tlb1_min_eaddr == start || +- vcpu_e500->tlb1_max_eaddr == end; -} - -/* This function is supposed to be called for a adding a new valid tlb entry */ @@ -2197,12 +2221,13 @@ index eda7be1..0000000 - struct kvmppc_vcpu_e500 *vcpu_e500, - int tlbsel, int esel) -{ -- struct kvm_book3e_206_tlb_entry *gtlbe - get_entry(vcpu_e500, tlbsel, esel); +- struct kvm_book3e_206_tlb_entry *gtlbe = +- get_entry(vcpu_e500, tlbsel, esel); - - if (unlikely(get_tlb_iprot(gtlbe))) - return -1; - -- if (tlbsel = 1 && kvmppc_need_recalc_tlb1map_range(vcpu_e500, gtlbe)) +- if (tlbsel == 1 && kvmppc_need_recalc_tlb1map_range(vcpu_e500, gtlbe)) - kvmppc_recalc_tlb1map_range(vcpu_e500); - - gtlbe->mas1 = 0; @@ -2267,7 +2292,7 @@ index eda7be1..0000000 - for (esel = 0; esel < vcpu_e500->gtlb_params[tlbsel].entries; esel++) { - tlbe = get_entry(vcpu_e500, tlbsel, esel); - tid = get_tlb_tid(tlbe); -- if (type = 0 || tid = pid) { +- if (type == 0 || tid == pid) { - inval_gtlbe_on_host(vcpu_e500, tlbsel, esel); - kvmppc_e500_gtlbe_invalidate(vcpu_e500, tlbsel, esel); - } @@ -2294,10 +2319,10 @@ index eda7be1..0000000 - struct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu); - int pid = get_cur_spid(vcpu); - -- if (type = 0 || type = 1) { +- if (type == 0 || type == 1) { - tlbilx_all(vcpu_e500, 0, pid, type); - tlbilx_all(vcpu_e500, 1, pid, type); -- } else if (type = 3) { +- } else if (type == 3) { - tlbilx_one(vcpu_e500, pid, ea); - } - @@ -2352,12 +2377,13 @@ index eda7be1..0000000 - - /* since we only have two TLBs, only lower bit is used. */ - tlbsel = vcpu->arch.shared->mas4 >> 28 & 0x1; -- victim = (tlbsel = 0) ? gtlb0_get_next_victim(vcpu_e500) : 0; +- victim = (tlbsel == 0) ? gtlb0_get_next_victim(vcpu_e500) : 0; - - vcpu->arch.shared->mas0 = MAS0_TLBSEL(tlbsel) - | MAS0_ESEL(victim) - | MAS0_NV(vcpu_e500->gtlb_nv[tlbsel]); -- vcpu->arch.shared->mas1 - (vcpu->arch.shared->mas6 & MAS6_SPID0) +- vcpu->arch.shared->mas1 = +- (vcpu->arch.shared->mas6 & MAS6_SPID0) - | (vcpu->arch.shared->mas6 & (MAS6_SAS ? MAS1_TS : 0)) - | (vcpu->arch.shared->mas4 & MAS4_TSIZED(~0)); - vcpu->arch.shared->mas2 &= MAS2_EPN; @@ -2401,7 +2427,7 @@ index eda7be1..0000000 - - if (get_tlb_v(gtlbe)) { - inval_gtlbe_on_host(vcpu_e500, tlbsel, esel); -- if ((tlbsel = 1) && +- if ((tlbsel == 1) && - kvmppc_need_recalc_tlb1map_range(vcpu_e500, gtlbe)) - recal = 1; - } @@ -2415,7 +2441,7 @@ index eda7be1..0000000 - trace_kvm_booke206_gtlb_write(vcpu->arch.shared->mas0, gtlbe->mas1, - gtlbe->mas2, gtlbe->mas7_3); - -- if (tlbsel = 1) { +- if (tlbsel == 1) { - /* - * If a valid tlb1 entry is overwritten then recalculate the - * min/max TLB1 map address range otherwise no need to look @@ -2432,7 +2458,7 @@ index eda7be1..0000000 - u64 eaddr = get_tlb_eaddr(gtlbe); - u64 raddr = get_tlb_raddr(gtlbe); - -- if (tlbsel = 0) { +- if (tlbsel == 0) { - gtlbe->mas1 &= ~MAS1_TSIZE(~0); - gtlbe->mas1 |= MAS1_TSIZE(BOOK3E_PAGESZ_4K); - } @@ -2837,8 +2863,8 @@ index eda7be1..0000000 - * architecturally possible -- e.g. in some weird nested - * virtualization case. - */ -- if (host_tlb_params[0].entries = 0 || -- host_tlb_params[1].entries = 0) { +- if (host_tlb_params[0].entries == 0 || +- host_tlb_params[1].entries == 0) { - pr_err("%s: need to know host tlb size\n", __func__); - return -ENODEV; - } @@ -2850,21 +2876,23 @@ index eda7be1..0000000 - if (!is_power_of_2(host_tlb_params[0].entries) || - !is_power_of_2(host_tlb_params[0].ways) || - host_tlb_params[0].entries < host_tlb_params[0].ways || -- host_tlb_params[0].ways = 0) { +- host_tlb_params[0].ways == 0) { - pr_err("%s: bad tlb0 host config: %u entries %u ways\n", - __func__, host_tlb_params[0].entries, - host_tlb_params[0].ways); - return -ENODEV; - } - -- host_tlb_params[0].sets - host_tlb_params[0].entries / host_tlb_params[0].ways; +- host_tlb_params[0].sets = +- host_tlb_params[0].entries / host_tlb_params[0].ways; - host_tlb_params[1].sets = 1; - - vcpu_e500->gtlb_params[0].entries = KVM_E500_TLB0_SIZE; - vcpu_e500->gtlb_params[1].entries = KVM_E500_TLB1_SIZE; - - vcpu_e500->gtlb_params[0].ways = KVM_E500_TLB0_WAY_NUM; -- vcpu_e500->gtlb_params[0].sets - KVM_E500_TLB0_SIZE / KVM_E500_TLB0_WAY_NUM; +- vcpu_e500->gtlb_params[0].sets = +- KVM_E500_TLB0_SIZE / KVM_E500_TLB0_WAY_NUM; - - vcpu_e500->gtlb_params[1].ways = KVM_E500_TLB1_SIZE; - vcpu_e500->gtlb_params[1].sets = 1; @@ -2876,12 +2904,14 @@ index eda7be1..0000000 - vcpu_e500->gtlb_offset[0] = 0; - vcpu_e500->gtlb_offset[1] = KVM_E500_TLB0_SIZE; - -- vcpu_e500->tlb_refs[0] - kzalloc(sizeof(struct tlbe_ref) * host_tlb_params[0].entries, +- vcpu_e500->tlb_refs[0] = +- kzalloc(sizeof(struct tlbe_ref) * host_tlb_params[0].entries, - GFP_KERNEL); - if (!vcpu_e500->tlb_refs[0]) - goto err; - -- vcpu_e500->tlb_refs[1] - kzalloc(sizeof(struct tlbe_ref) * host_tlb_params[1].entries, +- vcpu_e500->tlb_refs[1] = +- kzalloc(sizeof(struct tlbe_ref) * host_tlb_params[1].entries, - GFP_KERNEL); - if (!vcpu_e500->tlb_refs[1]) - goto err; @@ -2914,12 +2944,14 @@ index eda7be1..0000000 - vcpu->arch.tlbcfg[0] = mfspr(SPRN_TLB0CFG) & - ~(TLBnCFG_N_ENTRY | TLBnCFG_ASSOC); - vcpu->arch.tlbcfg[0] |= vcpu_e500->gtlb_params[0].entries; -- vcpu->arch.tlbcfg[0] |- vcpu_e500->gtlb_params[0].ways << TLBnCFG_ASSOC_SHIFT; +- vcpu->arch.tlbcfg[0] |= +- vcpu_e500->gtlb_params[0].ways << TLBnCFG_ASSOC_SHIFT; - - vcpu->arch.tlbcfg[1] = mfspr(SPRN_TLB1CFG) & - ~(TLBnCFG_N_ENTRY | TLBnCFG_ASSOC); - vcpu->arch.tlbcfg[1] |= vcpu_e500->gtlb_params[1].entries; -- vcpu->arch.tlbcfg[1] |- vcpu_e500->gtlb_params[1].ways << TLBnCFG_ASSOC_SHIFT; +- vcpu->arch.tlbcfg[1] |= +- vcpu_e500->gtlb_params[1].ways << TLBnCFG_ASSOC_SHIFT; - - kvmppc_recalc_tlb1map_range(vcpu_e500); - return 0; diff --git a/a/content_digest b/N1/content_digest index 9bc9b8d..459441a 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,7 +1,7 @@ "ref\01358463041-25922-1-git-send-email-agraf@suse.de\0" "From\0Alexander Graf <agraf@suse.de>\0" "Subject\0[PATCH 2/3] KVM: PPC: E500: Split host and guest MMU parts\0" - "Date\0Thu, 17 Jan 2013 22:50:40 +0000\0" + "Date\0Thu, 17 Jan 2013 23:50:40 +0100\0" "To\0kvm-ppc@vger.kernel.org\0" "Cc\0kvm@vger.kernel.org\0" "\00:1\0" @@ -136,7 +136,7 @@ "+\tstruct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu);\n" "+\tint esel = get_tlb_esel_bit(vcpu);\n" "+\n" - "+\tif (tlbsel = 0) {\n" + "+\tif (tlbsel == 0) {\n" "+\t\tesel &= vcpu_e500->gtlb_params[0].ways - 1;\n" "+\t\tesel += gtlb0_set_base(vcpu_e500, vcpu->arch.shared->mas2);\n" "+\t} else {\n" @@ -154,7 +154,7 @@ "+\tunsigned int set_base, offset;\n" "+\tint i;\n" "+\n" - "+\tif (tlbsel = 0) {\n" + "+\tif (tlbsel == 0) {\n" "+\t\tset_base = gtlb0_set_base(vcpu_e500, eaddr);\n" "+\t\tsize = vcpu_e500->gtlb_params[0].ways;\n" "+\t} else {\n" @@ -167,7 +167,8 @@ "+\toffset = vcpu_e500->gtlb_offset[tlbsel];\n" "+\n" "+\tfor (i = 0; i < size; i++) {\n" - "+\t\tstruct kvm_book3e_206_tlb_entry *tlbe +\t\t\t&vcpu_e500->gtlb_arch[offset + set_base + i];\n" + "+\t\tstruct kvm_book3e_206_tlb_entry *tlbe =\n" + "+\t\t\t&vcpu_e500->gtlb_arch[offset + set_base + i];\n" "+\t\tunsigned int tid;\n" "+\n" "+\t\tif (eaddr < get_tlb_eaddr(tlbe))\n" @@ -201,7 +202,7 @@ "+\n" "+\t/* since we only have two TLBs, only lower bit is used. */\n" "+\ttlbsel = (vcpu->arch.shared->mas4 >> 28) & 0x1;\n" - "+\tvictim = (tlbsel = 0) ? gtlb0_get_next_victim(vcpu_e500) : 0;\n" + "+\tvictim = (tlbsel == 0) ? gtlb0_get_next_victim(vcpu_e500) : 0;\n" "+\ttsized = (vcpu->arch.shared->mas4 >> 7) & 0x1f;\n" "+\n" "+\tvcpu->arch.shared->mas0 = MAS0_TLBSEL(tlbsel) | MAS0_ESEL(victim)\n" @@ -229,16 +230,19 @@ "+\toffset = vcpu_e500->gtlb_offset[1];\n" "+\n" "+\tfor (i = 0; i < size; i++) {\n" - "+\t\tstruct kvm_book3e_206_tlb_entry *tlbe +\t\t\t&vcpu_e500->gtlb_arch[offset + i];\n" + "+\t\tstruct kvm_book3e_206_tlb_entry *tlbe =\n" + "+\t\t\t&vcpu_e500->gtlb_arch[offset + i];\n" "+\n" "+\t\tif (!get_tlb_v(tlbe))\n" "+\t\t\tcontinue;\n" "+\n" "+\t\teaddr = get_tlb_eaddr(tlbe);\n" - "+\t\tvcpu_e500->tlb1_min_eaddr +\t\t\t\tmin(vcpu_e500->tlb1_min_eaddr, eaddr);\n" + "+\t\tvcpu_e500->tlb1_min_eaddr =\n" + "+\t\t\t\tmin(vcpu_e500->tlb1_min_eaddr, eaddr);\n" "+\n" "+\t\teaddr = get_tlb_end(tlbe);\n" - "+\t\tvcpu_e500->tlb1_max_eaddr +\t\t\t\tmax(vcpu_e500->tlb1_max_eaddr, eaddr);\n" + "+\t\tvcpu_e500->tlb1_max_eaddr =\n" + "+\t\t\t\tmax(vcpu_e500->tlb1_max_eaddr, eaddr);\n" "+\t}\n" "+}\n" "+\n" @@ -251,8 +255,8 @@ "+\tstart = get_tlb_eaddr(gtlbe) & ~(size - 1);\n" "+\tend = start + size - 1;\n" "+\n" - "+\treturn vcpu_e500->tlb1_min_eaddr = start ||\n" - "+\t\t\tvcpu_e500->tlb1_max_eaddr = end;\n" + "+\treturn vcpu_e500->tlb1_min_eaddr == start ||\n" + "+\t\t\tvcpu_e500->tlb1_max_eaddr == end;\n" "+}\n" "+\n" "+/* This function is supposed to be called for a adding a new valid tlb entry */\n" @@ -277,12 +281,13 @@ "+\t\t\t\tstruct kvmppc_vcpu_e500 *vcpu_e500,\n" "+\t\t\t\tint tlbsel, int esel)\n" "+{\n" - "+\tstruct kvm_book3e_206_tlb_entry *gtlbe +\t\tget_entry(vcpu_e500, tlbsel, esel);\n" + "+\tstruct kvm_book3e_206_tlb_entry *gtlbe =\n" + "+\t\tget_entry(vcpu_e500, tlbsel, esel);\n" "+\n" "+\tif (unlikely(get_tlb_iprot(gtlbe)))\n" "+\t\treturn -1;\n" "+\n" - "+\tif (tlbsel = 1 && kvmppc_need_recalc_tlb1map_range(vcpu_e500, gtlbe))\n" + "+\tif (tlbsel == 1 && kvmppc_need_recalc_tlb1map_range(vcpu_e500, gtlbe))\n" "+\t\tkvmppc_recalc_tlb1map_range(vcpu_e500);\n" "+\n" "+\tgtlbe->mas1 = 0;\n" @@ -347,7 +352,7 @@ "+\tfor (esel = 0; esel < vcpu_e500->gtlb_params[tlbsel].entries; esel++) {\n" "+\t\ttlbe = get_entry(vcpu_e500, tlbsel, esel);\n" "+\t\ttid = get_tlb_tid(tlbe);\n" - "+\t\tif (type = 0 || tid = pid) {\n" + "+\t\tif (type == 0 || tid == pid) {\n" "+\t\t\tinval_gtlbe_on_host(vcpu_e500, tlbsel, esel);\n" "+\t\t\tkvmppc_e500_gtlbe_invalidate(vcpu_e500, tlbsel, esel);\n" "+\t\t}\n" @@ -374,10 +379,10 @@ "+\tstruct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu);\n" "+\tint pid = get_cur_spid(vcpu);\n" "+\n" - "+\tif (type = 0 || type = 1) {\n" + "+\tif (type == 0 || type == 1) {\n" "+\t\ttlbilx_all(vcpu_e500, 0, pid, type);\n" "+\t\ttlbilx_all(vcpu_e500, 1, pid, type);\n" - "+\t} else if (type = 3) {\n" + "+\t} else if (type == 3) {\n" "+\t\ttlbilx_one(vcpu_e500, pid, ea);\n" "+\t}\n" "+\n" @@ -432,12 +437,13 @@ "+\n" "+\t\t/* since we only have two TLBs, only lower bit is used. */\n" "+\t\ttlbsel = vcpu->arch.shared->mas4 >> 28 & 0x1;\n" - "+\t\tvictim = (tlbsel = 0) ? gtlb0_get_next_victim(vcpu_e500) : 0;\n" + "+\t\tvictim = (tlbsel == 0) ? gtlb0_get_next_victim(vcpu_e500) : 0;\n" "+\n" "+\t\tvcpu->arch.shared->mas0 = MAS0_TLBSEL(tlbsel)\n" "+\t\t\t| MAS0_ESEL(victim)\n" "+\t\t\t| MAS0_NV(vcpu_e500->gtlb_nv[tlbsel]);\n" - "+\t\tvcpu->arch.shared->mas1 +\t\t\t (vcpu->arch.shared->mas6 & MAS6_SPID0)\n" + "+\t\tvcpu->arch.shared->mas1 =\n" + "+\t\t\t (vcpu->arch.shared->mas6 & MAS6_SPID0)\n" "+\t\t\t| (vcpu->arch.shared->mas6 & (MAS6_SAS ? MAS1_TS : 0))\n" "+\t\t\t| (vcpu->arch.shared->mas4 & MAS4_TSIZED(~0));\n" "+\t\tvcpu->arch.shared->mas2 &= MAS2_EPN;\n" @@ -465,7 +471,7 @@ "+\n" "+\tif (get_tlb_v(gtlbe)) {\n" "+\t\tinval_gtlbe_on_host(vcpu_e500, tlbsel, esel);\n" - "+\t\tif ((tlbsel = 1) &&\n" + "+\t\tif ((tlbsel == 1) &&\n" "+\t\t\tkvmppc_need_recalc_tlb1map_range(vcpu_e500, gtlbe))\n" "+\t\t\trecal = 1;\n" "+\t}\n" @@ -479,7 +485,7 @@ "+\ttrace_kvm_booke206_gtlb_write(vcpu->arch.shared->mas0, gtlbe->mas1,\n" "+\t gtlbe->mas2, gtlbe->mas7_3);\n" "+\n" - "+\tif (tlbsel = 1) {\n" + "+\tif (tlbsel == 1) {\n" "+\t\t/*\n" "+\t\t * If a valid tlb1 entry is overwritten then recalculate the\n" "+\t\t * min/max TLB1 map address range otherwise no need to look\n" @@ -496,7 +502,7 @@ "+\t\tu64 eaddr = get_tlb_eaddr(gtlbe);\n" "+\t\tu64 raddr = get_tlb_raddr(gtlbe);\n" "+\n" - "+\t\tif (tlbsel = 0) {\n" + "+\t\tif (tlbsel == 0) {\n" "+\t\t\tgtlbe->mas1 &= ~MAS1_TSIZE(~0);\n" "+\t\t\tgtlbe->mas1 |= MAS1_TSIZE(BOOK3E_PAGESZ_4K);\n" "+\t\t}\n" @@ -814,7 +820,8 @@ "+\tvcpu_e500->gtlb_params[1].entries = KVM_E500_TLB1_SIZE;\n" "+\n" "+\tvcpu_e500->gtlb_params[0].ways = KVM_E500_TLB0_WAY_NUM;\n" - "+\tvcpu_e500->gtlb_params[0].sets +\t\tKVM_E500_TLB0_SIZE / KVM_E500_TLB0_WAY_NUM;\n" + "+\tvcpu_e500->gtlb_params[0].sets =\n" + "+\t\tKVM_E500_TLB0_SIZE / KVM_E500_TLB0_WAY_NUM;\n" "+\n" "+\tvcpu_e500->gtlb_params[1].ways = KVM_E500_TLB1_SIZE;\n" "+\tvcpu_e500->gtlb_params[1].sets = 1;\n" @@ -848,12 +855,14 @@ "+\tvcpu->arch.tlbcfg[0] = mfspr(SPRN_TLB0CFG) &\n" "+\t\t\t ~(TLBnCFG_N_ENTRY | TLBnCFG_ASSOC);\n" "+\tvcpu->arch.tlbcfg[0] |= vcpu_e500->gtlb_params[0].entries;\n" - "+\tvcpu->arch.tlbcfg[0] |+\t\tvcpu_e500->gtlb_params[0].ways << TLBnCFG_ASSOC_SHIFT;\n" + "+\tvcpu->arch.tlbcfg[0] |=\n" + "+\t\tvcpu_e500->gtlb_params[0].ways << TLBnCFG_ASSOC_SHIFT;\n" "+\n" "+\tvcpu->arch.tlbcfg[1] = mfspr(SPRN_TLB1CFG) &\n" "+\t\t\t ~(TLBnCFG_N_ENTRY | TLBnCFG_ASSOC);\n" "+\tvcpu->arch.tlbcfg[1] |= vcpu_e500->gtlb_params[1].entries;\n" - "+\tvcpu->arch.tlbcfg[1] |+\t\tvcpu_e500->gtlb_params[1].ways << TLBnCFG_ASSOC_SHIFT;\n" + "+\tvcpu->arch.tlbcfg[1] |=\n" + "+\t\tvcpu_e500->gtlb_params[1].ways << TLBnCFG_ASSOC_SHIFT;\n" "+\n" "+\tkvmppc_recalc_tlb1map_range(vcpu_e500);\n" "+\treturn 0;\n" @@ -1007,7 +1016,7 @@ "+{\n" "+\tu32 mas0;\n" "+\n" - "+\tif (tlbsel = 0) {\n" + "+\tif (tlbsel == 0) {\n" "+\t\tmas0 = get_host_mas0(stlbe->mas2);\n" "+\t\t__write_host_tlbe(stlbe, mas0);\n" "+\t} else {\n" @@ -1048,9 +1057,10 @@ "+void inval_gtlbe_on_host(struct kvmppc_vcpu_e500 *vcpu_e500, int tlbsel,\n" "+\t\t\t int esel)\n" "+{\n" - "+\tstruct kvm_book3e_206_tlb_entry *gtlbe +\t\tget_entry(vcpu_e500, tlbsel, esel);\n" + "+\tstruct kvm_book3e_206_tlb_entry *gtlbe =\n" + "+\t\tget_entry(vcpu_e500, tlbsel, esel);\n" "+\n" - "+\tif (tlbsel = 1 &&\n" + "+\tif (tlbsel == 1 &&\n" "+\t vcpu_e500->gtlb_priv[1][esel].ref.flags & E500_TLB_BITMAP) {\n" "+\t\tu64 tmp = vcpu_e500->g2h_tlb1_map[esel];\n" "+\t\tint hw_tlb_indx;\n" @@ -1119,7 +1129,8 @@ "+\tint i;\n" "+\n" "+\tfor (i = 0; i < vcpu_e500->gtlb_params[tlbsel].entries; i++) {\n" - "+\t\tstruct tlbe_ref *ref +\t\t\t&vcpu_e500->gtlb_priv[tlbsel][i].ref;\n" + "+\t\tstruct tlbe_ref *ref =\n" + "+\t\t\t&vcpu_e500->gtlb_priv[tlbsel][i].ref;\n" "+\t\tkvmppc_e500_ref_release(ref);\n" "+\t}\n" "+}\n" @@ -1132,7 +1143,8 @@ "+\tkvmppc_e500_tlbil_all(vcpu_e500);\n" "+\n" "+\tfor (i = 0; i < host_tlb_params[stlbsel].entries; i++) {\n" - "+\t\tstruct tlbe_ref *ref +\t\t\t&vcpu_e500->tlb_refs[stlbsel][i];\n" + "+\t\tstruct tlbe_ref *ref =\n" + "+\t\t\t&vcpu_e500->tlb_refs[stlbsel][i];\n" "+\t\tkvmppc_e500_ref_release(ref);\n" "+\t}\n" "+\n" @@ -1192,7 +1204,7 @@ "+\tslot = gfn_to_memslot(vcpu_e500->vcpu.kvm, gfn);\n" "+\thva = gfn_to_hva_memslot(slot, gfn);\n" "+\n" - "+\tif (tlbsel = 1) {\n" + "+\tif (tlbsel == 1) {\n" "+\t\tstruct vm_area_struct *vma;\n" "+\t\tdown_read(¤t->mm->mmap_sem);\n" "+\n" @@ -1252,7 +1264,8 @@ "+\t\t\t\t\tcontinue;\n" "+\t\t\t\tif (gfn_end + pfn - gfn > end)\n" "+\t\t\t\t\tcontinue;\n" - "+\t\t\t\tif ((gfn & (tsize_pages - 1)) !+\t\t\t\t (pfn & (tsize_pages - 1)))\n" + "+\t\t\t\tif ((gfn & (tsize_pages - 1)) !=\n" + "+\t\t\t\t (pfn & (tsize_pages - 1)))\n" "+\t\t\t\t\tcontinue;\n" "+\n" "+\t\t\t\tgvaddr &= ~((tsize_pages << PAGE_SHIFT) - 1);\n" @@ -1468,8 +1481,8 @@ "+\t * architecturally possible -- e.g. in some weird nested\n" "+\t * virtualization case.\n" "+\t */\n" - "+\tif (host_tlb_params[0].entries = 0 ||\n" - "+\t host_tlb_params[1].entries = 0) {\n" + "+\tif (host_tlb_params[0].entries == 0 ||\n" + "+\t host_tlb_params[1].entries == 0) {\n" "+\t\tpr_err(\"%s: need to know host tlb size\\n\", __func__);\n" "+\t\treturn -ENODEV;\n" "+\t}\n" @@ -1481,22 +1494,25 @@ "+\tif (!is_power_of_2(host_tlb_params[0].entries) ||\n" "+\t !is_power_of_2(host_tlb_params[0].ways) ||\n" "+\t host_tlb_params[0].entries < host_tlb_params[0].ways ||\n" - "+\t host_tlb_params[0].ways = 0) {\n" + "+\t host_tlb_params[0].ways == 0) {\n" "+\t\tpr_err(\"%s: bad tlb0 host config: %u entries %u ways\\n\",\n" "+\t\t __func__, host_tlb_params[0].entries,\n" "+\t\t host_tlb_params[0].ways);\n" "+\t\treturn -ENODEV;\n" "+\t}\n" "+\n" - "+\thost_tlb_params[0].sets +\t\thost_tlb_params[0].entries / host_tlb_params[0].ways;\n" + "+\thost_tlb_params[0].sets =\n" + "+\t\thost_tlb_params[0].entries / host_tlb_params[0].ways;\n" "+\thost_tlb_params[1].sets = 1;\n" "+\n" - "+\tvcpu_e500->tlb_refs[0] +\t\tkzalloc(sizeof(struct tlbe_ref) * host_tlb_params[0].entries,\n" + "+\tvcpu_e500->tlb_refs[0] =\n" + "+\t\tkzalloc(sizeof(struct tlbe_ref) * host_tlb_params[0].entries,\n" "+\t\t\tGFP_KERNEL);\n" "+\tif (!vcpu_e500->tlb_refs[0])\n" "+\t\tgoto err;\n" "+\n" - "+\tvcpu_e500->tlb_refs[1] +\t\tkzalloc(sizeof(struct tlbe_ref) * host_tlb_params[1].entries,\n" + "+\tvcpu_e500->tlb_refs[1] =\n" + "+\t\tkzalloc(sizeof(struct tlbe_ref) * host_tlb_params[1].entries,\n" "+\t\t\tGFP_KERNEL);\n" "+\tif (!vcpu_e500->tlb_refs[1])\n" "+\t\tgoto err;\n" @@ -1701,7 +1717,7 @@ "-{\n" "-\tu32 mas0;\n" "-\n" - "-\tif (tlbsel = 0) {\n" + "-\tif (tlbsel == 0) {\n" "-\t\tmas0 = get_host_mas0(stlbe->mas2);\n" "-\t\t__write_host_tlbe(stlbe, mas0);\n" "-\t} else {\n" @@ -1741,9 +1757,10 @@ "-static void inval_gtlbe_on_host(struct kvmppc_vcpu_e500 *vcpu_e500,\n" "-\t\t\t\tint tlbsel, int esel)\n" "-{\n" - "-\tstruct kvm_book3e_206_tlb_entry *gtlbe -\t\tget_entry(vcpu_e500, tlbsel, esel);\n" + "-\tstruct kvm_book3e_206_tlb_entry *gtlbe =\n" + "-\t\tget_entry(vcpu_e500, tlbsel, esel);\n" "-\n" - "-\tif (tlbsel = 1 &&\n" + "-\tif (tlbsel == 1 &&\n" "-\t vcpu_e500->gtlb_priv[1][esel].ref.flags & E500_TLB_BITMAP) {\n" "-\t\tu64 tmp = vcpu_e500->g2h_tlb1_map[esel];\n" "-\t\tint hw_tlb_indx;\n" @@ -1793,7 +1810,7 @@ "-\tstruct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu);\n" "-\tint esel = get_tlb_esel_bit(vcpu);\n" "-\n" - "-\tif (tlbsel = 0) {\n" + "-\tif (tlbsel == 0) {\n" "-\t\tesel &= vcpu_e500->gtlb_params[0].ways - 1;\n" "-\t\tesel += gtlb0_set_base(vcpu_e500, vcpu->arch.shared->mas2);\n" "-\t} else {\n" @@ -1811,7 +1828,7 @@ "-\tunsigned int set_base, offset;\n" "-\tint i;\n" "-\n" - "-\tif (tlbsel = 0) {\n" + "-\tif (tlbsel == 0) {\n" "-\t\tset_base = gtlb0_set_base(vcpu_e500, eaddr);\n" "-\t\tsize = vcpu_e500->gtlb_params[0].ways;\n" "-\t} else {\n" @@ -1824,7 +1841,8 @@ "-\toffset = vcpu_e500->gtlb_offset[tlbsel];\n" "-\n" "-\tfor (i = 0; i < size; i++) {\n" - "-\t\tstruct kvm_book3e_206_tlb_entry *tlbe -\t\t\t&vcpu_e500->gtlb_arch[offset + set_base + i];\n" + "-\t\tstruct kvm_book3e_206_tlb_entry *tlbe =\n" + "-\t\t\t&vcpu_e500->gtlb_arch[offset + set_base + i];\n" "-\t\tunsigned int tid;\n" "-\n" "-\t\tif (eaddr < get_tlb_eaddr(tlbe))\n" @@ -1884,7 +1902,8 @@ "-\tint i;\n" "-\n" "-\tfor (i = 0; i < vcpu_e500->gtlb_params[tlbsel].entries; i++) {\n" - "-\t\tstruct tlbe_ref *ref -\t\t\t&vcpu_e500->gtlb_priv[tlbsel][i].ref;\n" + "-\t\tstruct tlbe_ref *ref =\n" + "-\t\t\t&vcpu_e500->gtlb_priv[tlbsel][i].ref;\n" "-\t\tkvmppc_e500_ref_release(ref);\n" "-\t}\n" "-}\n" @@ -1897,7 +1916,8 @@ "-\tkvmppc_e500_tlbil_all(vcpu_e500);\n" "-\n" "-\tfor (i = 0; i < host_tlb_params[stlbsel].entries; i++) {\n" - "-\t\tstruct tlbe_ref *ref -\t\t\t&vcpu_e500->tlb_refs[stlbsel][i];\n" + "-\t\tstruct tlbe_ref *ref =\n" + "-\t\t\t&vcpu_e500->tlb_refs[stlbsel][i];\n" "-\t\tkvmppc_e500_ref_release(ref);\n" "-\t}\n" "-\n" @@ -1920,7 +1940,7 @@ "-\n" "-\t/* since we only have two TLBs, only lower bit is used. */\n" "-\ttlbsel = (vcpu->arch.shared->mas4 >> 28) & 0x1;\n" - "-\tvictim = (tlbsel = 0) ? gtlb0_get_next_victim(vcpu_e500) : 0;\n" + "-\tvictim = (tlbsel == 0) ? gtlb0_get_next_victim(vcpu_e500) : 0;\n" "-\ttsized = (vcpu->arch.shared->mas4 >> 7) & 0x1f;\n" "-\n" "-\tvcpu->arch.shared->mas0 = MAS0_TLBSEL(tlbsel) | MAS0_ESEL(victim)\n" @@ -1982,7 +2002,7 @@ "-\tslot = gfn_to_memslot(vcpu_e500->vcpu.kvm, gfn);\n" "-\thva = gfn_to_hva_memslot(slot, gfn);\n" "-\n" - "-\tif (tlbsel = 1) {\n" + "-\tif (tlbsel == 1) {\n" "-\t\tstruct vm_area_struct *vma;\n" "-\t\tdown_read(¤t->mm->mmap_sem);\n" "-\n" @@ -2042,7 +2062,8 @@ "-\t\t\t\t\tcontinue;\n" "-\t\t\t\tif (gfn_end + pfn - gfn > end)\n" "-\t\t\t\t\tcontinue;\n" - "-\t\t\t\tif ((gfn & (tsize_pages - 1)) !-\t\t\t\t (pfn & (tsize_pages - 1)))\n" + "-\t\t\t\tif ((gfn & (tsize_pages - 1)) !=\n" + "-\t\t\t\t (pfn & (tsize_pages - 1)))\n" "-\t\t\t\t\tcontinue;\n" "-\n" "-\t\t\t\tgvaddr &= ~((tsize_pages << PAGE_SHIFT) - 1);\n" @@ -2157,16 +2178,19 @@ "-\toffset = vcpu_e500->gtlb_offset[1];\n" "-\n" "-\tfor (i = 0; i < size; i++) {\n" - "-\t\tstruct kvm_book3e_206_tlb_entry *tlbe -\t\t\t&vcpu_e500->gtlb_arch[offset + i];\n" + "-\t\tstruct kvm_book3e_206_tlb_entry *tlbe =\n" + "-\t\t\t&vcpu_e500->gtlb_arch[offset + i];\n" "-\n" "-\t\tif (!get_tlb_v(tlbe))\n" "-\t\t\tcontinue;\n" "-\n" "-\t\teaddr = get_tlb_eaddr(tlbe);\n" - "-\t\tvcpu_e500->tlb1_min_eaddr -\t\t\t\tmin(vcpu_e500->tlb1_min_eaddr, eaddr);\n" + "-\t\tvcpu_e500->tlb1_min_eaddr =\n" + "-\t\t\t\tmin(vcpu_e500->tlb1_min_eaddr, eaddr);\n" "-\n" "-\t\teaddr = get_tlb_end(tlbe);\n" - "-\t\tvcpu_e500->tlb1_max_eaddr -\t\t\t\tmax(vcpu_e500->tlb1_max_eaddr, eaddr);\n" + "-\t\tvcpu_e500->tlb1_max_eaddr =\n" + "-\t\t\t\tmax(vcpu_e500->tlb1_max_eaddr, eaddr);\n" "-\t}\n" "-}\n" "-\n" @@ -2179,8 +2203,8 @@ "-\tstart = get_tlb_eaddr(gtlbe) & ~(size - 1);\n" "-\tend = start + size - 1;\n" "-\n" - "-\treturn vcpu_e500->tlb1_min_eaddr = start ||\n" - "-\t\t\tvcpu_e500->tlb1_max_eaddr = end;\n" + "-\treturn vcpu_e500->tlb1_min_eaddr == start ||\n" + "-\t\t\tvcpu_e500->tlb1_max_eaddr == end;\n" "-}\n" "-\n" "-/* This function is supposed to be called for a adding a new valid tlb entry */\n" @@ -2205,12 +2229,13 @@ "-\t\t\t\tstruct kvmppc_vcpu_e500 *vcpu_e500,\n" "-\t\t\t\tint tlbsel, int esel)\n" "-{\n" - "-\tstruct kvm_book3e_206_tlb_entry *gtlbe -\t\tget_entry(vcpu_e500, tlbsel, esel);\n" + "-\tstruct kvm_book3e_206_tlb_entry *gtlbe =\n" + "-\t\tget_entry(vcpu_e500, tlbsel, esel);\n" "-\n" "-\tif (unlikely(get_tlb_iprot(gtlbe)))\n" "-\t\treturn -1;\n" "-\n" - "-\tif (tlbsel = 1 && kvmppc_need_recalc_tlb1map_range(vcpu_e500, gtlbe))\n" + "-\tif (tlbsel == 1 && kvmppc_need_recalc_tlb1map_range(vcpu_e500, gtlbe))\n" "-\t\tkvmppc_recalc_tlb1map_range(vcpu_e500);\n" "-\n" "-\tgtlbe->mas1 = 0;\n" @@ -2275,7 +2300,7 @@ "-\tfor (esel = 0; esel < vcpu_e500->gtlb_params[tlbsel].entries; esel++) {\n" "-\t\ttlbe = get_entry(vcpu_e500, tlbsel, esel);\n" "-\t\ttid = get_tlb_tid(tlbe);\n" - "-\t\tif (type = 0 || tid = pid) {\n" + "-\t\tif (type == 0 || tid == pid) {\n" "-\t\t\tinval_gtlbe_on_host(vcpu_e500, tlbsel, esel);\n" "-\t\t\tkvmppc_e500_gtlbe_invalidate(vcpu_e500, tlbsel, esel);\n" "-\t\t}\n" @@ -2302,10 +2327,10 @@ "-\tstruct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu);\n" "-\tint pid = get_cur_spid(vcpu);\n" "-\n" - "-\tif (type = 0 || type = 1) {\n" + "-\tif (type == 0 || type == 1) {\n" "-\t\ttlbilx_all(vcpu_e500, 0, pid, type);\n" "-\t\ttlbilx_all(vcpu_e500, 1, pid, type);\n" - "-\t} else if (type = 3) {\n" + "-\t} else if (type == 3) {\n" "-\t\ttlbilx_one(vcpu_e500, pid, ea);\n" "-\t}\n" "-\n" @@ -2360,12 +2385,13 @@ "-\n" "-\t\t/* since we only have two TLBs, only lower bit is used. */\n" "-\t\ttlbsel = vcpu->arch.shared->mas4 >> 28 & 0x1;\n" - "-\t\tvictim = (tlbsel = 0) ? gtlb0_get_next_victim(vcpu_e500) : 0;\n" + "-\t\tvictim = (tlbsel == 0) ? gtlb0_get_next_victim(vcpu_e500) : 0;\n" "-\n" "-\t\tvcpu->arch.shared->mas0 = MAS0_TLBSEL(tlbsel)\n" "-\t\t\t| MAS0_ESEL(victim)\n" "-\t\t\t| MAS0_NV(vcpu_e500->gtlb_nv[tlbsel]);\n" - "-\t\tvcpu->arch.shared->mas1 -\t\t\t (vcpu->arch.shared->mas6 & MAS6_SPID0)\n" + "-\t\tvcpu->arch.shared->mas1 =\n" + "-\t\t\t (vcpu->arch.shared->mas6 & MAS6_SPID0)\n" "-\t\t\t| (vcpu->arch.shared->mas6 & (MAS6_SAS ? MAS1_TS : 0))\n" "-\t\t\t| (vcpu->arch.shared->mas4 & MAS4_TSIZED(~0));\n" "-\t\tvcpu->arch.shared->mas2 &= MAS2_EPN;\n" @@ -2409,7 +2435,7 @@ "-\n" "-\tif (get_tlb_v(gtlbe)) {\n" "-\t\tinval_gtlbe_on_host(vcpu_e500, tlbsel, esel);\n" - "-\t\tif ((tlbsel = 1) &&\n" + "-\t\tif ((tlbsel == 1) &&\n" "-\t\t\tkvmppc_need_recalc_tlb1map_range(vcpu_e500, gtlbe))\n" "-\t\t\trecal = 1;\n" "-\t}\n" @@ -2423,7 +2449,7 @@ "-\ttrace_kvm_booke206_gtlb_write(vcpu->arch.shared->mas0, gtlbe->mas1,\n" "-\t gtlbe->mas2, gtlbe->mas7_3);\n" "-\n" - "-\tif (tlbsel = 1) {\n" + "-\tif (tlbsel == 1) {\n" "-\t\t/*\n" "-\t\t * If a valid tlb1 entry is overwritten then recalculate the\n" "-\t\t * min/max TLB1 map address range otherwise no need to look\n" @@ -2440,7 +2466,7 @@ "-\t\tu64 eaddr = get_tlb_eaddr(gtlbe);\n" "-\t\tu64 raddr = get_tlb_raddr(gtlbe);\n" "-\n" - "-\t\tif (tlbsel = 0) {\n" + "-\t\tif (tlbsel == 0) {\n" "-\t\t\tgtlbe->mas1 &= ~MAS1_TSIZE(~0);\n" "-\t\t\tgtlbe->mas1 |= MAS1_TSIZE(BOOK3E_PAGESZ_4K);\n" "-\t\t}\n" @@ -2845,8 +2871,8 @@ "-\t * architecturally possible -- e.g. in some weird nested\n" "-\t * virtualization case.\n" "-\t */\n" - "-\tif (host_tlb_params[0].entries = 0 ||\n" - "-\t host_tlb_params[1].entries = 0) {\n" + "-\tif (host_tlb_params[0].entries == 0 ||\n" + "-\t host_tlb_params[1].entries == 0) {\n" "-\t\tpr_err(\"%s: need to know host tlb size\\n\", __func__);\n" "-\t\treturn -ENODEV;\n" "-\t}\n" @@ -2858,21 +2884,23 @@ "-\tif (!is_power_of_2(host_tlb_params[0].entries) ||\n" "-\t !is_power_of_2(host_tlb_params[0].ways) ||\n" "-\t host_tlb_params[0].entries < host_tlb_params[0].ways ||\n" - "-\t host_tlb_params[0].ways = 0) {\n" + "-\t host_tlb_params[0].ways == 0) {\n" "-\t\tpr_err(\"%s: bad tlb0 host config: %u entries %u ways\\n\",\n" "-\t\t __func__, host_tlb_params[0].entries,\n" "-\t\t host_tlb_params[0].ways);\n" "-\t\treturn -ENODEV;\n" "-\t}\n" "-\n" - "-\thost_tlb_params[0].sets -\t\thost_tlb_params[0].entries / host_tlb_params[0].ways;\n" + "-\thost_tlb_params[0].sets =\n" + "-\t\thost_tlb_params[0].entries / host_tlb_params[0].ways;\n" "-\thost_tlb_params[1].sets = 1;\n" "-\n" "-\tvcpu_e500->gtlb_params[0].entries = KVM_E500_TLB0_SIZE;\n" "-\tvcpu_e500->gtlb_params[1].entries = KVM_E500_TLB1_SIZE;\n" "-\n" "-\tvcpu_e500->gtlb_params[0].ways = KVM_E500_TLB0_WAY_NUM;\n" - "-\tvcpu_e500->gtlb_params[0].sets -\t\tKVM_E500_TLB0_SIZE / KVM_E500_TLB0_WAY_NUM;\n" + "-\tvcpu_e500->gtlb_params[0].sets =\n" + "-\t\tKVM_E500_TLB0_SIZE / KVM_E500_TLB0_WAY_NUM;\n" "-\n" "-\tvcpu_e500->gtlb_params[1].ways = KVM_E500_TLB1_SIZE;\n" "-\tvcpu_e500->gtlb_params[1].sets = 1;\n" @@ -2884,12 +2912,14 @@ "-\tvcpu_e500->gtlb_offset[0] = 0;\n" "-\tvcpu_e500->gtlb_offset[1] = KVM_E500_TLB0_SIZE;\n" "-\n" - "-\tvcpu_e500->tlb_refs[0] -\t\tkzalloc(sizeof(struct tlbe_ref) * host_tlb_params[0].entries,\n" + "-\tvcpu_e500->tlb_refs[0] =\n" + "-\t\tkzalloc(sizeof(struct tlbe_ref) * host_tlb_params[0].entries,\n" "-\t\t\tGFP_KERNEL);\n" "-\tif (!vcpu_e500->tlb_refs[0])\n" "-\t\tgoto err;\n" "-\n" - "-\tvcpu_e500->tlb_refs[1] -\t\tkzalloc(sizeof(struct tlbe_ref) * host_tlb_params[1].entries,\n" + "-\tvcpu_e500->tlb_refs[1] =\n" + "-\t\tkzalloc(sizeof(struct tlbe_ref) * host_tlb_params[1].entries,\n" "-\t\t\tGFP_KERNEL);\n" "-\tif (!vcpu_e500->tlb_refs[1])\n" "-\t\tgoto err;\n" @@ -2922,12 +2952,14 @@ "-\tvcpu->arch.tlbcfg[0] = mfspr(SPRN_TLB0CFG) &\n" "-\t\t\t ~(TLBnCFG_N_ENTRY | TLBnCFG_ASSOC);\n" "-\tvcpu->arch.tlbcfg[0] |= vcpu_e500->gtlb_params[0].entries;\n" - "-\tvcpu->arch.tlbcfg[0] |-\t\tvcpu_e500->gtlb_params[0].ways << TLBnCFG_ASSOC_SHIFT;\n" + "-\tvcpu->arch.tlbcfg[0] |=\n" + "-\t\tvcpu_e500->gtlb_params[0].ways << TLBnCFG_ASSOC_SHIFT;\n" "-\n" "-\tvcpu->arch.tlbcfg[1] = mfspr(SPRN_TLB1CFG) &\n" "-\t\t\t ~(TLBnCFG_N_ENTRY | TLBnCFG_ASSOC);\n" "-\tvcpu->arch.tlbcfg[1] |= vcpu_e500->gtlb_params[1].entries;\n" - "-\tvcpu->arch.tlbcfg[1] |-\t\tvcpu_e500->gtlb_params[1].ways << TLBnCFG_ASSOC_SHIFT;\n" + "-\tvcpu->arch.tlbcfg[1] |=\n" + "-\t\tvcpu_e500->gtlb_params[1].ways << TLBnCFG_ASSOC_SHIFT;\n" "-\n" "-\tkvmppc_recalc_tlb1map_range(vcpu_e500);\n" "-\treturn 0;\n" @@ -2949,4 +2981,4 @@ "-- \n" 1.6.0.2 -eafc4ecc0c0e249c7711c89958a9aeca07e1e57caaecae2bfd30a8489ab5b253 +8f64885a4958a20f4cd6d33360532007244dc5cd7aea3a61d8c4cc9e76a95a54
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.