Index: kernel/generic/src/mm/km.c
===================================================================
--- kernel/generic/src/mm/km.c	(revision 6ddd7f8cece6bae9f7749e491a5633f4af0b4ce9)
+++ kernel/generic/src/mm/km.c	(revision b987eb42ca08ff4d2e679bf590bdcb10aa41d4e0)
@@ -166,10 +166,11 @@
 	page_table_lock(AS_KERNEL, true);
 
-	ipl = tlb_shootdown_start(TLB_INVL_ASID, ASID_KERNEL, 0, 0);
+	size_t pages = size >> PAGE_WIDTH;
+	ipl = tlb_shootdown_start(TLB_INVL_PAGES, ASID_KERNEL, vaddr, pages);
 
 	for (offs = 0; offs < size; offs += PAGE_SIZE)
 		page_mapping_remove(AS_KERNEL, vaddr + offs);
 
-	tlb_invalidate_pages(ASID_KERNEL, vaddr, size >> PAGE_WIDTH);
+	tlb_invalidate_pages(ASID_KERNEL, vaddr, pages);
 
 	as_invalidate_translation_cache(AS_KERNEL, 0, -1);
