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