Ignore:
Timestamp:
Apr 14, 2017, 9:41:36 PM (6 weeks ago)
Author:
brainslayer
Message:

kernel update

File:
1 edited

Legend:

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

    r31574 r31859  
    763763                                    struct uasm_label **l,
    764764                                    unsigned int pte,
    765                                     unsigned int ptr)
     765                                    unsigned int ptr,
     766                                    unsigned int flush)
    766767{
    767768#ifdef CONFIG_SMP
     
    772773        UASM_i_SW(p, pte, 0, ptr);
    773774#endif
     775        if (cpu_has_ftlb && flush) {
     776                BUG_ON(!cpu_has_tlbinv);
     777
     778                UASM_i_MFC0(p, ptr, C0_ENTRYHI);
     779                uasm_i_ori(p, ptr, ptr, MIPS_ENTRYHI_EHINV);
     780                UASM_i_MTC0(p, ptr, C0_ENTRYHI);
     781                build_tlb_write_entry(p, l, r, tlb_indexed);
     782
     783                uasm_i_xori(p, ptr, ptr, MIPS_ENTRYHI_EHINV);
     784                UASM_i_MTC0(p, ptr, C0_ENTRYHI);
     785                build_huge_update_entries(p, pte, ptr);
     786                build_huge_tlb_write_entry(p, l, r, pte, tlb_random, 0);
     787
     788                return;
     789        }
     790
    774791        build_huge_update_entries(p, pte, ptr);
    775792        build_huge_tlb_write_entry(p, l, r, pte, tlb_indexed, 0);
     
    21982215        }
    21992216        uasm_i_ori(&p, wr.r1, wr.r1, (_PAGE_ACCESSED | _PAGE_VALID));
    2200         build_huge_handler_tail(&p, &r, &l, wr.r1, wr.r2);
     2217        build_huge_handler_tail(&p, &r, &l, wr.r1, wr.r2, 1);
    22012218#endif
    22022219
     
    22532270        uasm_i_ori(&p, wr.r1, wr.r1,
    22542271                   _PAGE_ACCESSED | _PAGE_MODIFIED | _PAGE_VALID | _PAGE_DIRTY);
    2255         build_huge_handler_tail(&p, &r, &l, wr.r1, wr.r2);
     2272        build_huge_handler_tail(&p, &r, &l, wr.r1, wr.r2, 1);
    22562273#endif
    22572274
     
    23092326        uasm_i_ori(&p, wr.r1, wr.r1,
    23102327                   _PAGE_ACCESSED | _PAGE_MODIFIED | _PAGE_VALID | _PAGE_DIRTY);
    2311         build_huge_handler_tail(&p, &r, &l, wr.r1, wr.r2);
     2328        build_huge_handler_tail(&p, &r, &l, wr.r1, wr.r2, 0);
    23122329#endif
    23132330
Note: See TracChangeset for help on using the changeset viewer.