Changeset 346b12a2 in mainline for kernel/arch


Ignore:
Timestamp:
2016-08-31T17:51:04Z (9 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
fb63c06
Parents:
38dc82d
Message:

Add page_mapping_update()

page_mapping_update() can be used to safely update the accessed and dirty
bits of a PTE in the actual page tables.

Location:
kernel/arch
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia64/src/mm/tlb.c

    r38dc82d r346b12a2  
    662662                t.d = true;
    663663                dtc_pte_copy(&t);
     664                page_mapping_update(as, va, true, &t);
    664665        } else {
    665666                as_page_fault(va, PF_ACCESS_WRITE, istate);
     
    694695                t.a = true;
    695696                itc_pte_copy(&t);
     697                page_mapping_update(AS, va, true, &t);
    696698        } else {
    697699                as_page_fault(va, PF_ACCESS_EXEC, istate);
     
    728730                t.a = true;
    729731                dtc_pte_copy(&t);
     732                page_mapping_update(as, va, true, &t);
    730733        } else {
    731734                if (as_page_fault(va, PF_ACCESS_READ, istate) == AS_PF_FAULT) {
  • kernel/arch/mips32/src/mm/tlb.c

    r38dc82d r346b12a2  
    111111                    pte.cacheable, pte.pfn);
    112112
     113                page_mapping_update(AS, badvaddr, true, &pte);
     114
    113115                /*
    114116                 * New entry is to be inserted into TLB
     
    176178                tlb_prepare_entry_lo(&lo, pte.g, pte.p, pte.d,
    177179                    pte.cacheable, pte.pfn);
     180
     181                page_mapping_update(AS, badvaddr, true, &pte);
    178182
    179183                /*
     
    239243                tlb_prepare_entry_lo(&lo, pte.g, pte.p, pte.w,
    240244                    pte.cacheable, pte.pfn);
     245
     246                page_mapping_update(AS, badvaddr, true, &pte);
    241247
    242248                /*
  • kernel/arch/sparc64/src/mm/sun4u/tlb.c

    r38dc82d r346b12a2  
    210210                itsb_pte_copy(&t, index);
    211211#endif
     212                page_mapping_update(AS, istate->tpc, true, &t);
    212213        } else {
    213214                /*
     
    264265                dtsb_pte_copy(&t, index, true);
    265266#endif
     267                page_mapping_update(as, page_16k, true, &t);
    266268        } else {
    267269                /*
     
    308310                dtsb_pte_copy(&t, index, false);
    309311#endif
     312                page_mapping_update(as, page_16k, true, &t);
    310313        } else {
    311314                /*
  • kernel/arch/sparc64/src/mm/sun4v/tlb.c

    r38dc82d r346b12a2  
    224224                itsb_pte_copy(&t);
    225225#endif
     226                page_mapping_update(AS, va, true, &t);
    226227        } else {
    227228                /*
     
    271272                dtsb_pte_copy(&t, true);
    272273#endif
     274                page_mapping_update(as, va, true, &t);
    273275        } else {
    274276                /*
     
    309311                dtsb_pte_copy(&t, false);
    310312#endif
     313                page_mapping_update(as, va, true, &t);
    311314        } else {
    312315                /*
Note: See TracChangeset for help on using the changeset viewer.