Ignore:
File:
1 edited

Legend:

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

    r0705fc5 rcd0a38e  
    166166        page_table_lock(AS_KERNEL, true);
    167167
    168         ipl = tlb_shootdown_start(TLB_INVL_ASID, ASID_KERNEL, 0, 0);
     168        size_t pages = size >> PAGE_WIDTH;
     169        ipl = tlb_shootdown_start(TLB_INVL_PAGES, ASID_KERNEL, vaddr, pages);
    169170
    170171        for (offs = 0; offs < size; offs += PAGE_SIZE)
    171172                page_mapping_remove(AS_KERNEL, vaddr + offs);
    172173
    173         tlb_invalidate_asid(ASID_KERNEL);
     174        tlb_invalidate_pages(ASID_KERNEL, vaddr, pages);
    174175
    175176        as_invalidate_translation_cache(AS_KERNEL, 0, -1);
     
    203204 *
    204205 * @param vaddr         Virtual address to be unmapped. May be unaligned, but
    205  *                      it must a value previously returned by km_map().
     206 *                      it must be a value previously returned by km_map().
    206207 * @param size          Size of area starting at vaddr to be unmapped.
    207208 */
Note: See TracChangeset for help on using the changeset viewer.