Changeset c868e2d in mainline for kernel/generic/src


Ignore:
Timestamp:
2011-12-19T23:42:44Z (14 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
398e33be
Parents:
7aaed09
Message:

Add and apply page_mapping_make_global() on each span added to the
kernel non-identity. This ensures that the kernel non-identity will use
the same set of page tables in all address spaces.

Location:
kernel/generic/src/mm
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/mm/km.c

    r7aaed09 rc868e2d  
    3838#include <mm/km.h>
    3939#include <arch/mm/km.h>
     40#include <mm/page.h>
    4041#include <config.h>
    4142#include <typedefs.h>
     
    7071        bool span_added;
    7172
     73        page_mapping_make_global(base, size);
     74
    7275        span_added = ra_span_add(km_ni_arena, base, size);
    7376        ASSERT(span_added);
  • kernel/generic/src/mm/page.c

    r7aaed09 rc868e2d  
    178178}
    179179
     180/** Make the mapping shared by all page tables (not address spaces).
     181 *
     182 * @param base Starting virtual address of the range that is made global.
     183 * @param size Size of the address range that is made global.
     184 */
     185void page_mapping_make_global(uintptr_t base, size_t size)
     186{
     187        ASSERT(page_mapping_operations);
     188        ASSERT(page_mapping_operations->mapping_make_global);
     189       
     190        return page_mapping_operations->mapping_make_global(base, size);
     191}
     192
    180193uintptr_t hw_map(uintptr_t physaddr, size_t size)
    181194{
Note: See TracChangeset for help on using the changeset viewer.