git: 4568f5a286a2 - main - kern_kcov: replace vm_page_next() with iterator
Date: Fri, 18 Apr 2025 17:24:24 UTC
The branch main has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=4568f5a286a212fcceaf9a9bb90eabc104829f49 commit 4568f5a286a212fcceaf9a9bb90eabc104829f49 Author: Doug Moore <dougm@FreeBSD.org> AuthorDate: 2025-04-18 17:18:00 +0000 Commit: Doug Moore <dougm@FreeBSD.org> CommitDate: 2025-04-18 17:24:04 +0000 kern_kcov: replace vm_page_next() with iterator Use VM_RADIX_FORALL, and drop a use of vm_page_next(), in kcov_free(). Reviewed by: kib Differential Revision: kern_kcov: replace vm_page_next() with iterator --- sys/kern/kern_kcov.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/sys/kern/kern_kcov.c b/sys/kern/kern_kcov.c index 19d35a1ad961..1c1d924b8b79 100644 --- a/sys/kern/kern_kcov.c +++ b/sys/kern/kern_kcov.c @@ -396,20 +396,19 @@ kcov_alloc(struct kcov_info *info, size_t entries) static void kcov_free(struct kcov_info *info) { + struct pctrie_iter pages; vm_page_t m; - size_t i; if (info->kvaddr != 0) { pmap_qremove(info->kvaddr, info->bufsize / PAGE_SIZE); kva_free(info->kvaddr, info->bufsize); } if (info->bufobj != NULL) { + vm_page_iter_limit_init(&pages, info->bufobj, + info->bufsize / PAGE_SIZE); VM_OBJECT_WLOCK(info->bufobj); - m = vm_page_lookup(info->bufobj, 0); - for (i = 0; i < info->bufsize / PAGE_SIZE; i++) { + VM_RADIX_FORALL(m, &pages) vm_page_unwire_noq(m); - m = vm_page_next(m); - } VM_OBJECT_WUNLOCK(info->bufobj); vm_object_deallocate(info->bufobj); }