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);
        }

Reply via email to