Module Name: src Committed By: skrll Date: Sat Oct 2 14:28:05 UTC 2021
Modified Files: src/sys/arch/arm/arm32: arm32_tlb.c src/sys/arch/mips/mips: mips_fixup.c pmap_machdep.c src/sys/arch/powerpc/booke: booke_pmap.c booke_stubs.c src/sys/arch/riscv/riscv: pmap_machdep.c src/sys/uvm/pmap: pmap_tlb.c tlb.h Log Message: Pass the pmap in tlb_set_asid for the benefit of aarch64. To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 src/sys/arch/arm/arm32/arm32_tlb.c cvs rdiff -u -r1.21 -r1.22 src/sys/arch/mips/mips/mips_fixup.c cvs rdiff -u -r1.35 -r1.36 src/sys/arch/mips/mips/pmap_machdep.c cvs rdiff -u -r1.33 -r1.34 src/sys/arch/powerpc/booke/booke_pmap.c cvs rdiff -u -r1.11 -r1.12 src/sys/arch/powerpc/booke/booke_stubs.c cvs rdiff -u -r1.7 -r1.8 src/sys/arch/riscv/riscv/pmap_machdep.c cvs rdiff -u -r1.45 -r1.46 src/sys/uvm/pmap/pmap_tlb.c cvs rdiff -u -r1.4 -r1.5 src/sys/uvm/pmap/tlb.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/arm/arm32/arm32_tlb.c diff -u src/sys/arch/arm/arm32/arm32_tlb.c:1.14 src/sys/arch/arm/arm32/arm32_tlb.c:1.15 --- src/sys/arch/arm/arm32/arm32_tlb.c:1.14 Fri Oct 30 18:54:36 2020 +++ src/sys/arch/arm/arm32/arm32_tlb.c Sat Oct 2 14:28:04 2021 @@ -31,7 +31,7 @@ #include "opt_multiprocessor.h" #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: arm32_tlb.c,v 1.14 2020/10/30 18:54:36 skrll Exp $"); +__KERNEL_RCSID(1, "$NetBSD: arm32_tlb.c,v 1.15 2021/10/02 14:28:04 skrll Exp $"); #include <sys/param.h> #include <sys/types.h> @@ -50,7 +50,7 @@ tlb_get_asid(void) } void -tlb_set_asid(tlb_asid_t asid) +tlb_set_asid(tlb_asid_t asid, pmap_t pm) { dsb(sy); if (asid == KERNEL_PID) { Index: src/sys/arch/mips/mips/mips_fixup.c diff -u src/sys/arch/mips/mips/mips_fixup.c:1.21 src/sys/arch/mips/mips/mips_fixup.c:1.22 --- src/sys/arch/mips/mips/mips_fixup.c:1.21 Tue Feb 16 06:06:58 2021 +++ src/sys/arch/mips/mips/mips_fixup.c Sat Oct 2 14:28:04 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: mips_fixup.c,v 1.21 2021/02/16 06:06:58 simonb Exp $ */ +/* $NetBSD: mips_fixup.c,v 1.22 2021/10/02 14:28:04 skrll Exp $ */ /*- * Copyright (c) 2010 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: mips_fixup.c,v 1.21 2021/02/16 06:06:58 simonb Exp $"); +__KERNEL_RCSID(0, "$NetBSD: mips_fixup.c,v 1.22 2021/10/02 14:28:04 skrll Exp $"); #include "opt_mips3_wired.h" #include "opt_multiprocessor.h" @@ -545,7 +545,7 @@ mips_fixup_stubs(uint32_t *start, uint32 void mips_cpu_switch_resume(struct lwp *) __stub; tlb_asid_t tlb_get_asid(void) __stub; -void tlb_set_asid(uint32_t) __stub; +void tlb_set_asid(uint32_t, struct pmap *) __stub; void tlb_invalidate_all(void) __stub; void tlb_invalidate_globals(void) __stub; void tlb_invalidate_asids(uint32_t, uint32_t) __stub; @@ -575,7 +575,7 @@ tlb_get_asid(void) } void -tlb_set_asid(uint32_t asid) +tlb_set_asid(uint32_t asid, struct pmap *pm) { (*mips_locore_jumpvec.ljv_tlb_set_asid)(asid); } Index: src/sys/arch/mips/mips/pmap_machdep.c diff -u src/sys/arch/mips/mips/pmap_machdep.c:1.35 src/sys/arch/mips/mips/pmap_machdep.c:1.36 --- src/sys/arch/mips/mips/pmap_machdep.c:1.35 Sat Oct 2 13:41:50 2021 +++ src/sys/arch/mips/mips/pmap_machdep.c Sat Oct 2 14:28:04 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap_machdep.c,v 1.35 2021/10/02 13:41:50 skrll Exp $ */ +/* $NetBSD: pmap_machdep.c,v 1.36 2021/10/02 14:28:04 skrll Exp $ */ /*- * Copyright (c) 1998, 2001 The NetBSD Foundation, Inc. @@ -67,7 +67,7 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pmap_machdep.c,v 1.35 2021/10/02 13:41:50 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pmap_machdep.c,v 1.36 2021/10/02 14:28:04 skrll Exp $"); /* * Manages physical address maps. @@ -492,7 +492,7 @@ pmap_bootstrap(void) pool_init(&pmap_pv_pool, sizeof(struct pv_entry), 0, 0, 0, "pvpl", &pmap_pv_page_allocator, IPL_NONE); - tlb_set_asid(KERNEL_PID); + tlb_set_asid(KERNEL_PID, pmap_kernel()); #ifdef MIPS3_PLUS /* XXX mmu XXX */ /* Index: src/sys/arch/powerpc/booke/booke_pmap.c diff -u src/sys/arch/powerpc/booke/booke_pmap.c:1.33 src/sys/arch/powerpc/booke/booke_pmap.c:1.34 --- src/sys/arch/powerpc/booke/booke_pmap.c:1.33 Sat Oct 2 13:41:50 2021 +++ src/sys/arch/powerpc/booke/booke_pmap.c Sat Oct 2 14:28:04 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: booke_pmap.c,v 1.33 2021/10/02 13:41:50 skrll Exp $ */ +/* $NetBSD: booke_pmap.c,v 1.34 2021/10/02 14:28:04 skrll Exp $ */ /*- * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc. * All rights reserved. @@ -37,7 +37,7 @@ #define __PMAP_PRIVATE #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: booke_pmap.c,v 1.33 2021/10/02 13:41:50 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: booke_pmap.c,v 1.34 2021/10/02 14:28:04 skrll Exp $"); #ifdef _KERNEL_OPT #include "opt_multiprocessor.h" @@ -300,7 +300,7 @@ pmap_bootstrap(vaddr_t startkernel, vadd pool_init(&pmap_pv_pool, sizeof(struct pv_entry), 0, 0, 0, "pvpl", &pmap_pv_page_allocator, IPL_NONE); - tlb_set_asid(KERNEL_PID); + tlb_set_asid(KERNEL_PID, pmap_kernel()); return endkernel; } Index: src/sys/arch/powerpc/booke/booke_stubs.c diff -u src/sys/arch/powerpc/booke/booke_stubs.c:1.11 src/sys/arch/powerpc/booke/booke_stubs.c:1.12 --- src/sys/arch/powerpc/booke/booke_stubs.c:1.11 Mon Jul 6 09:34:16 2020 +++ src/sys/arch/powerpc/booke/booke_stubs.c Sat Oct 2 14:28:04 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: booke_stubs.c,v 1.11 2020/07/06 09:34:16 rin Exp $ */ +/* $NetBSD: booke_stubs.c,v 1.12 2021/10/02 14:28:04 skrll Exp $ */ /*- * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc. * All rights reserved. @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: booke_stubs.c,v 1.11 2020/07/06 09:34:16 rin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: booke_stubs.c,v 1.12 2021/10/02 14:28:04 skrll Exp $"); #include <sys/param.h> #include <sys/cpu.h> @@ -45,10 +45,10 @@ __KERNEL_RCSID(0, "$NetBSD: booke_stubs. #define __stub __section(".stub") __noprofile -void tlb_set_asid(tlb_asid_t) __stub; +void tlb_set_asid(tlb_asid_t, struct pmap *) __stub; void -tlb_set_asid(tlb_asid_t asid) +tlb_set_asid(tlb_asid_t asid, struct pmap *pm) { (*cpu_md_ops.md_tlb_ops->md_tlb_set_asid)(asid); } Index: src/sys/arch/riscv/riscv/pmap_machdep.c diff -u src/sys/arch/riscv/riscv/pmap_machdep.c:1.7 src/sys/arch/riscv/riscv/pmap_machdep.c:1.8 --- src/sys/arch/riscv/riscv/pmap_machdep.c:1.7 Sat May 1 07:41:24 2021 +++ src/sys/arch/riscv/riscv/pmap_machdep.c Sat Oct 2 14:28:05 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap_machdep.c,v 1.7 2021/05/01 07:41:24 skrll Exp $ */ +/* $NetBSD: pmap_machdep.c,v 1.8 2021/10/02 14:28:05 skrll Exp $ */ /* * Copyright (c) 2014, 2019, 2021 The NetBSD Foundation, Inc. @@ -34,7 +34,7 @@ #include <sys/cdefs.h> -__RCSID("$NetBSD: pmap_machdep.c,v 1.7 2021/05/01 07:41:24 skrll Exp $"); +__RCSID("$NetBSD: pmap_machdep.c,v 1.8 2021/10/02 14:28:05 skrll Exp $"); #include <sys/param.h> @@ -171,7 +171,7 @@ tlb_get_asid(void) } void -tlb_set_asid(tlb_asid_t asid) +tlb_set_asid(tlb_asid_t asid, struct pmap *pm) { riscvreg_asid_write(asid); } Index: src/sys/uvm/pmap/pmap_tlb.c diff -u src/sys/uvm/pmap/pmap_tlb.c:1.45 src/sys/uvm/pmap/pmap_tlb.c:1.46 --- src/sys/uvm/pmap/pmap_tlb.c:1.45 Sun Sep 12 09:05:01 2021 +++ src/sys/uvm/pmap/pmap_tlb.c Sat Oct 2 14:28:05 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap_tlb.c,v 1.45 2021/09/12 09:05:01 skrll Exp $ */ +/* $NetBSD: pmap_tlb.c,v 1.46 2021/10/02 14:28:05 skrll Exp $ */ /*- * Copyright (c) 2010 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pmap_tlb.c,v 1.45 2021/09/12 09:05:01 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pmap_tlb.c,v 1.46 2021/10/02 14:28:05 skrll Exp $"); /* * Manages address spaces in a TLB. @@ -958,7 +958,7 @@ pmap_tlb_asid_acquire(pmap_t pm, struct ci->ci_pmap_asid_cur = pai->pai_asid; UVMHIST_LOG(maphist, "setting asid to %#jx", pai->pai_asid, 0, 0, 0); - tlb_set_asid(pai->pai_asid); + tlb_set_asid(pai->pai_asid, pm); pmap_tlb_asid_check(); } else { printf("%s: l (%p) != curlwp %p\n", __func__, l, curlwp); @@ -996,7 +996,7 @@ pmap_tlb_asid_deactivate(pmap_t pm) } #endif curcpu()->ci_pmap_asid_cur = KERNEL_PID; - tlb_set_asid(KERNEL_PID); + tlb_set_asid(KERNEL_PID, pmap_kernel()); pmap_tlb_pai_check(cpu_tlb_info(curcpu()), false); #if defined(DEBUG) Index: src/sys/uvm/pmap/tlb.h diff -u src/sys/uvm/pmap/tlb.h:1.4 src/sys/uvm/pmap/tlb.h:1.5 --- src/sys/uvm/pmap/tlb.h:1.4 Sat Jun 24 05:31:03 2017 +++ src/sys/uvm/pmap/tlb.h Sat Oct 2 14:28:05 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: tlb.h,v 1.4 2017/06/24 05:31:03 skrll Exp $ */ +/* $NetBSD: tlb.h,v 1.5 2021/10/02 14:28:05 skrll Exp $ */ /*- * Copyright (c) 2011 The NetBSD Foundation, Inc. * All rights reserved. @@ -33,6 +33,7 @@ #if defined(_KERNEL) || defined(_KMEMUSER) struct tlbmask; +struct pmap; typedef bool (*tlb_walkfunc_t)(void *, vaddr_t, tlb_asid_t, pt_entry_t); @@ -54,7 +55,7 @@ struct tlb_md_ops { tlb_asid_t tlb_get_asid(void); -void tlb_set_asid(tlb_asid_t); +void tlb_set_asid(tlb_asid_t, struct pmap *); void tlb_invalidate_all(void); void tlb_invalidate_globals(void); void tlb_invalidate_asids(tlb_asid_t, tlb_asid_t);