Page MenuHomeFreeBSD

D49889.id153873.diff
No OneTemporary

D49889.id153873.diff

Index: sys/kern/kern_kcov.c
===================================================================
--- sys/kern/kern_kcov.c
+++ sys/kern/kern_kcov.c
@@ -396,20 +396,19 @@
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);
}
Index: sys/vm/vm_radix.h
===================================================================
--- sys/vm/vm_radix.h
+++ sys/vm/vm_radix.h
@@ -261,8 +261,8 @@
* Iterate over each non-NULL page from page 'start' to the end of the object.
*/
#define VM_RADIX_FOREACH_FROM(m, pages, start) \
- for (m = vm_radix_iter_lookup_ge(&pages, start); m != NULL; \
- m = vm_radix_iter_step(&pages))
+ for (m = vm_radix_iter_lookup_ge(pages, start); m != NULL; \
+ m = vm_radix_iter_step(pages))
/*
* Iterate over each non-NULL page from the beginning to the end of the object.
@@ -312,8 +312,8 @@
* page.
*/
#define VM_RADIX_FORALL_FROM(m, pages, start) \
- for (m = vm_radix_iter_lookup(&pages, start); m != NULL; \
- m = vm_radix_iter_next(&pages))
+ for (m = vm_radix_iter_lookup(pages, start); m != NULL; \
+ m = vm_radix_iter_next(pages))
/*
* Iterate over consecutive non-NULL pages from the beginning to first NULL

File Metadata

Mime Type
text/plain
Expires
Sun, Apr 12, 12:16 PM (8 h, 34 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31347621
Default Alt Text
D49889.id153873.diff (1 KB)

Event Timeline