An unfortunate copy/paste error. Make that
Differential Revision:https://reviews.freebsd.org/D49889
On 4/18/25 12:24, Doug Moore wrote:
The branch main has been updated by dougm:
URL:https://cgit.FreeBSD.org/src/commit/?id=4568f5a286a212fcceaf9a9bb90eabc104829f49
commit 4568f5a286a212fcceaf9a9bb90eabc104829f49
Author: Doug Moore<do...@freebsd.org>
AuthorDate: 2025-04-18 17:18:00 +0000
Commit: Doug Moore<do...@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);
}