Changes in / [e6a78b9:0bbd13e] in mainline
- Files:
-
- 6 deleted
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/amd64/src/mm/page.c
re6a78b9 r0bbd13e 57 57 uintptr_t cur; 58 58 unsigned int identity_flags = 59 PAGE_ GLOBAL | PAGE_CACHEABLE | PAGE_EXEC | PAGE_WRITE | PAGE_READ;59 PAGE_CACHEABLE | PAGE_EXEC | PAGE_GLOBAL | PAGE_WRITE; 60 60 61 61 page_mapping_operations = &pt_mapping_operations; -
kernel/arch/ia32/src/mm/page.c
re6a78b9 r0bbd13e 71 71 for (cur = 0; cur < min(config.identity_size, config.physmem_end); 72 72 cur += FRAME_SIZE) { 73 flags = PAGE_GLOBAL | PAGE_CACHEABLE | PAGE_WRITE | PAGE_READ; 73 flags = PAGE_CACHEABLE | PAGE_WRITE; 74 if ((PA2KA(cur) >= config.base) && 75 (PA2KA(cur) < config.base + config.kernel_size)) 76 flags |= PAGE_GLOBAL; 74 77 page_mapping_insert(AS_KERNEL, PA2KA(cur), cur, flags); 75 78 } -
kernel/genarch/src/mm/page_pt.c
re6a78b9 r0bbd13e 346 346 SET_PTL1_ADDRESS(ptl0, PTL0_INDEX(addr), KA2PA(l1)); 347 347 SET_PTL1_FLAGS(ptl0, PTL0_INDEX(addr), 348 PAGE_PRESENT | PAGE_USER | PAGE_ CACHEABLE |349 PAGE_ EXEC | PAGE_WRITE | PAGE_READ);348 PAGE_PRESENT | PAGE_USER | PAGE_EXEC | PAGE_CACHEABLE | 349 PAGE_WRITE); 350 350 } 351 351 } -
kernel/generic/src/mm/as.c
re6a78b9 r0bbd13e 665 665 666 666 page_table_lock(as, false); 667 668 /* 669 * Start TLB shootdown sequence. 670 */ 671 ipl_t ipl = tlb_shootdown_start(TLB_INVL_PAGES, as->asid, 672 area->base + P2SZ(pages), area->pages - pages); 667 673 668 674 /* … … 720 726 } 721 727 722 /*723 * Start TLB shootdown sequence.724 *725 * The sequence is rather short and can be726 * repeated multiple times. The reason is that727 * we don't want to have used_space_remove()728 * inside the sequence as it may use a blocking729 * memory allocation for its B+tree. Blocking730 * while holding the tlblock spinlock is731 * forbidden and would hit a kernel assertion.732 */733 734 ipl_t ipl = tlb_shootdown_start(TLB_INVL_PAGES,735 as->asid, area->base + P2SZ(pages),736 area->pages - pages);737 738 728 for (; i < size; i++) { 739 729 pte_t *pte = page_mapping_find(as, … … 753 743 page_mapping_remove(as, ptr + P2SZ(i)); 754 744 } 755 756 /*757 * Finish TLB shootdown sequence.758 */759 760 tlb_invalidate_pages(as->asid,761 area->base + P2SZ(pages),762 area->pages - pages);763 764 /*765 * Invalidate software translation caches766 * (e.g. TSB on sparc64, PHT on ppc32).767 */768 as_invalidate_translation_cache(as,769 area->base + P2SZ(pages),770 area->pages - pages);771 tlb_shootdown_finalize(ipl);772 745 } 773 746 } 747 748 /* 749 * Finish TLB shootdown sequence. 750 */ 751 752 tlb_invalidate_pages(as->asid, area->base + P2SZ(pages), 753 area->pages - pages); 754 755 /* 756 * Invalidate software translation caches 757 * (e.g. TSB on sparc64, PHT on ppc32). 758 */ 759 as_invalidate_translation_cache(as, area->base + P2SZ(pages), 760 area->pages - pages); 761 tlb_shootdown_finalize(ipl); 762 774 763 page_table_unlock(as, false); 775 764 } else {
Note:
See TracChangeset
for help on using the changeset viewer.