Ignore:
Timestamp:
Apr 21, 2017, 4:28:29 AM (5 weeks ago)
Author:
brainslayer
Message:

update

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/linux/universal/linux-3.18/arch/mips/mm/tlbex.c

    r25523 r31885  
    755755                                    struct uasm_label **l,
    756756                                    unsigned int pte,
    757                                     unsigned int ptr)
     757                                    unsigned int ptr,
     758                                    unsigned int flush)
    758759{
    759760#ifdef CONFIG_SMP
     
    764765        UASM_i_SW(p, pte, 0, ptr);
    765766#endif
     767        if (cpu_has_ftlb && flush) {
     768                BUG_ON(!cpu_has_tlbinv);
     769
     770                UASM_i_MFC0(p, ptr, C0_ENTRYHI);
     771                uasm_i_ori(p, ptr, ptr, MIPS_ENTRYHI_EHINV);
     772                UASM_i_MTC0(p, ptr, C0_ENTRYHI);
     773                build_tlb_write_entry(p, l, r, tlb_indexed);
     774
     775                uasm_i_xori(p, ptr, ptr, MIPS_ENTRYHI_EHINV);
     776                UASM_i_MTC0(p, ptr, C0_ENTRYHI);
     777                build_huge_update_entries(p, pte, ptr);
     778                build_huge_tlb_write_entry(p, l, r, pte, tlb_random, 0);
     779
     780                return;
     781        }
     782
    766783        build_huge_update_entries(p, pte, ptr);
    767784        build_huge_tlb_write_entry(p, l, r, pte, tlb_indexed, 0);
     
    20772094        }
    20782095        uasm_i_ori(&p, wr.r1, wr.r1, (_PAGE_ACCESSED | _PAGE_VALID));
    2079         build_huge_handler_tail(&p, &r, &l, wr.r1, wr.r2);
     2096        build_huge_handler_tail(&p, &r, &l, wr.r1, wr.r2, 1);
    20802097#endif
    20812098
     
    21322149        uasm_i_ori(&p, wr.r1, wr.r1,
    21332150                   _PAGE_ACCESSED | _PAGE_MODIFIED | _PAGE_VALID | _PAGE_DIRTY);
    2134         build_huge_handler_tail(&p, &r, &l, wr.r1, wr.r2);
     2151        build_huge_handler_tail(&p, &r, &l, wr.r1, wr.r2, 1);
    21352152#endif
    21362153
     
    21882205        uasm_i_ori(&p, wr.r1, wr.r1,
    21892206                   _PAGE_ACCESSED | _PAGE_MODIFIED | _PAGE_VALID | _PAGE_DIRTY);
    2190         build_huge_handler_tail(&p, &r, &l, wr.r1, wr.r2);
     2207        build_huge_handler_tail(&p, &r, &l, wr.r1, wr.r2, 0);
    21912208#endif
    21922209
Note: See TracChangeset for help on using the changeset viewer.