Module Name: src Committed By: skrll Date: Wed Aug 2 14:45:04 UTC 2023
Modified Files: src/sys/arch/aarch64/aarch64: db_interface.c Log Message: Relax the TLB invalidation from full to by va for writing to kernel text in db_write_text. To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 src/sys/arch/aarch64/aarch64/db_interface.c 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/aarch64/aarch64/db_interface.c diff -u src/sys/arch/aarch64/aarch64/db_interface.c:1.22 src/sys/arch/aarch64/aarch64/db_interface.c:1.23 --- src/sys/arch/aarch64/aarch64/db_interface.c:1.22 Wed Nov 2 08:37:32 2022 +++ src/sys/arch/aarch64/aarch64/db_interface.c Wed Aug 2 14:45:04 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: db_interface.c,v 1.22 2022/11/02 08:37:32 skrll Exp $ */ +/* $NetBSD: db_interface.c,v 1.23 2023/08/02 14:45:04 skrll Exp $ */ /* * Copyright (c) 2017 Ryo Shimizu <r...@nerv.org> @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: db_interface.c,v 1.22 2022/11/02 08:37:32 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: db_interface.c,v 1.23 2023/08/02 14:45:04 skrll Exp $"); #include <sys/param.h> #include <sys/types.h> @@ -171,7 +171,8 @@ db_write_text(vaddr_t addr, size_t size, */ /* old pte is returned by pmap_kvattr */ pte = pmap_kvattr(ptep, VM_PROT_EXECUTE | VM_PROT_READ | VM_PROT_WRITE); - aarch64_tlbi_all(); + /* dsb(ishst) included in aarch64_tlbi_by_va */ + aarch64_tlbi_by_va(addr); s = size; if (size > PAGE_SIZE) @@ -182,7 +183,8 @@ db_write_text(vaddr_t addr, size_t size, /* restore pte */ *ptep = pte; - aarch64_tlbi_all(); + /* dsb(ishst) included in aarch64_tlbi_by_va */ + aarch64_tlbi_by_va(addr); addr += s; size -= s;