Changes in / [e6a78b9:0bbd13e] in mainline


Ignore:
Files:
6 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/amd64/src/mm/page.c

    re6a78b9 r0bbd13e  
    5757        uintptr_t cur;
    5858        unsigned int identity_flags =
    59             PAGE_GLOBAL | PAGE_CACHEABLE | PAGE_EXEC | PAGE_WRITE | PAGE_READ;
     59            PAGE_CACHEABLE | PAGE_EXEC | PAGE_GLOBAL | PAGE_WRITE;
    6060               
    6161        page_mapping_operations = &pt_mapping_operations;
  • kernel/arch/ia32/src/mm/page.c

    re6a78b9 r0bbd13e  
    7171        for (cur = 0; cur < min(config.identity_size, config.physmem_end);
    7272            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;
    7477                page_mapping_insert(AS_KERNEL, PA2KA(cur), cur, flags);
    7578        }
  • kernel/genarch/src/mm/page_pt.c

    re6a78b9 r0bbd13e  
    346346                SET_PTL1_ADDRESS(ptl0, PTL0_INDEX(addr), KA2PA(l1));
    347347                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);
    350350        }
    351351}
  • kernel/generic/src/mm/as.c

    re6a78b9 r0bbd13e  
    665665               
    666666                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);
    667673               
    668674                /*
     
    720726                                }
    721727                               
    722                                 /*
    723                                  * Start TLB shootdown sequence.
    724                                  *
    725                                  * The sequence is rather short and can be
    726                                  * repeated multiple times. The reason is that
    727                                  * we don't want to have used_space_remove()
    728                                  * inside the sequence as it may use a blocking
    729                                  * memory allocation for its B+tree. Blocking
    730                                  * while holding the tlblock spinlock is
    731                                  * 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                
    738728                                for (; i < size; i++) {
    739729                                        pte_t *pte = page_mapping_find(as,
     
    753743                                        page_mapping_remove(as, ptr + P2SZ(i));
    754744                                }
    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 caches
    766                                  * (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);
    772745                        }
    773746                }
     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               
    774763                page_table_unlock(as, false);
    775764        } else {
Note: See TracChangeset for help on using the changeset viewer.