git: b01455592c22 - main - amd_idpgtbl: use iterator instead of vm_page_next
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 18 Apr 2025 17:24:25 UTC
The branch main has been updated by dougm:
URL: https://cgit.FreeBSD.org/src/commit/?id=b01455592c22515429a030f47173acd40eb3e218
commit b01455592c22515429a030f47173acd40eb3e218
Author: Doug Moore <dougm@FreeBSD.org>
AuthorDate: 2025-04-18 17:20:06 +0000
Commit: Doug Moore <dougm@FreeBSD.org>
CommitDate: 2025-04-18 17:24:04 +0000
amd_idpgtbl: use iterator instead of vm_page_next
Use VM_RADIX_FORALL instead of vm_page_next in a loop in
amdiommu_domain_free_pgtbl.
Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D49890
---
sys/x86/iommu/amd_idpgtbl.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/sys/x86/iommu/amd_idpgtbl.c b/sys/x86/iommu/amd_idpgtbl.c
index 7809a4d57926..4ed73675bd41 100644
--- a/sys/x86/iommu/amd_idpgtbl.c
+++ b/sys/x86/iommu/amd_idpgtbl.c
@@ -54,6 +54,7 @@
#include <vm/vm_object.h>
#include <vm/vm_page.h>
#include <vm/vm_pager.h>
+#include <vm/vm_radix.h>
#include <vm/vm_map.h>
#include <dev/pci/pcireg.h>
#include <machine/atomic.h>
@@ -103,6 +104,7 @@ amdiommu_domain_alloc_pgtbl(struct amdiommu_domain *domain)
void
amdiommu_domain_free_pgtbl(struct amdiommu_domain *domain)
{
+ struct pctrie_iter pages;
vm_object_t obj;
vm_page_t m;
@@ -118,7 +120,8 @@ amdiommu_domain_free_pgtbl(struct amdiommu_domain *domain)
/* Obliterate ref_counts */
VM_OBJECT_ASSERT_WLOCKED(obj);
- for (m = vm_page_lookup(obj, 0); m != NULL; m = vm_page_next(m))
+ vm_page_iter_init(&pages, obj);
+ VM_RADIX_FORALL(m, &pages)
vm_page_clearref(m);
VM_OBJECT_WUNLOCK(obj);
vm_object_deallocate(obj);