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

kernel update

File:
1 edited

Legend:

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

    r29197 r31859  
    758758                                    struct uasm_label **l,
    759759                                    unsigned int pte,
    760                                     unsigned int ptr)
     760                                    unsigned int ptr,
     761                                    unsigned int flush)
    761762{
    762763#ifdef CONFIG_SMP
     
    767768        UASM_i_SW(p, pte, 0, ptr);
    768769#endif
     770        if (cpu_has_ftlb && flush) {
     771                BUG_ON(!cpu_has_tlbinv);
     772
     773                UASM_i_MFC0(p, ptr, C0_ENTRYHI);
     774                uasm_i_ori(p, ptr, ptr, MIPS_ENTRYHI_EHINV);
     775                UASM_i_MTC0(p, ptr, C0_ENTRYHI);
     776                build_tlb_write_entry(p, l, r, tlb_indexed);
     777
     778                uasm_i_xori(p, ptr, ptr, MIPS_ENTRYHI_EHINV);
     779                UASM_i_MTC0(p, ptr, C0_ENTRYHI);
     780                build_huge_update_entries(p, pte, ptr);
     781                build_huge_tlb_write_entry(p, l, r, pte, tlb_random, 0);
     782
     783                return;
     784        }
     785
    769786        build_huge_update_entries(p, pte, ptr);
    770787        build_huge_tlb_write_entry(p, l, r, pte, tlb_indexed, 0);
     
    20982115        }
    20992116        uasm_i_ori(&p, wr.r1, wr.r1, (_PAGE_ACCESSED | _PAGE_VALID));
    2100         build_huge_handler_tail(&p, &r, &l, wr.r1, wr.r2);
     2117        build_huge_handler_tail(&p, &r, &l, wr.r1, wr.r2, 1);
    21012118#endif
    21022119
     
    21532170        uasm_i_ori(&p, wr.r1, wr.r1,
    21542171                   _PAGE_ACCESSED | _PAGE_MODIFIED | _PAGE_VALID | _PAGE_DIRTY);
    2155         build_huge_handler_tail(&p, &r, &l, wr.r1, wr.r2);
     2172        build_huge_handler_tail(&p, &r, &l, wr.r1, wr.r2, 1);
    21562173#endif
    21572174
     
    22092226        uasm_i_ori(&p, wr.r1, wr.r1,
    22102227                   _PAGE_ACCESSED | _PAGE_MODIFIED | _PAGE_VALID | _PAGE_DIRTY);
    2211         build_huge_handler_tail(&p, &r, &l, wr.r1, wr.r2);
     2228        build_huge_handler_tail(&p, &r, &l, wr.r1, wr.r2, 0);
    22122229#endif
    22132230
Note: See TracChangeset for help on using the changeset viewer.