Index: sys/arch/mips/mips/pmap_tlb.c =================================================================== RCS file: /cvsroot/src/sys/arch/mips/mips/pmap_tlb.c,v retrieving revision 1.10 diff -u -p -r1.10 pmap_tlb.c --- sys/arch/mips/mips/pmap_tlb.c 11 Jun 2015 15:15:27 -0000 1.10 +++ sys/arch/mips/mips/pmap_tlb.c 22 Jun 2016 07:49:41 -0000 @@ -656,7 +656,8 @@ pmap_tlb_invalidate_addr(pmap_t pm, vadd TLBINFO_LOCK(ti); if (pm == pmap_kernel() || PMAP_PAI_ASIDVALID_P(pai, ti)) { - va |= pai->pai_asid << MIPS_TLB_PID_SHIFT; + va |= (pm == pmap_kernel() ? 0 : + pai->pai_asid << MIPS_TLB_PID_SHIFT); pmap_tlb_asid_check(); tlb_invalidate_addr(va); pmap_tlb_asid_check(); @@ -1042,7 +1043,7 @@ pmap_tlb_asid_check(void) uint32_t tlb_hi; __asm("mfc0 %0,$%1" : "=r"(tlb_hi) : "n"(MIPS_COP_0_TLB_HI)); uint32_t asid = (tlb_hi & MIPS_TLB_PID) >> MIPS_TLB_PID_SHIFT; - KDASSERTMSG(asid == curcpu()->ci_pmap_asid_cur, + KDASSERTMSG(asid == 0 || asid == curcpu()->ci_pmap_asid_cur, "tlb_hi (%#x) asid (%#x) != current asid (%#x)", tlb_hi, asid, curcpu()->ci_pmap_asid_cur); kpreempt_enable();