Page MenuHomeFreeBSD

D49890.1784940804.diff
No OneTemporary

Size
791 B
Referenced Files
None
Subscribers
None

D49890.1784940804.diff

diff --git a/sys/x86/iommu/amd_idpgtbl.c b/sys/x86/iommu/amd_idpgtbl.c
--- 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 @@
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 @@
/* 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);

File Metadata

Mime Type
text/plain
Expires
Sat, Jul 25, 12:53 AM (9 h, 30 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29251370
Default Alt Text
D49890.1784940804.diff (791 B)

Event Timeline