Page MenuHomeFreeBSD

D56432.diff
No OneTemporary

D56432.diff

diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c
--- a/sys/vm/vm_page.c
+++ b/sys/vm/vm_page.c
@@ -5232,6 +5232,11 @@
}
break;
}
+ if ((allocflags & VM_ALLOC_ZERO) != 0 &&
+ vm_page_none_valid(m)) {
+ pmap_zero_page(m);
+ vm_page_valid(m);
+ }
} else {
if ((allocflags & VM_ALLOC_NOCREAT) != 0)
break;
@@ -5245,12 +5250,11 @@
goto retrylookup;
}
ma[i] = m;
- }
- if (vm_page_none_valid(m) &&
- (allocflags & VM_ALLOC_ZERO) != 0) {
- if ((m->flags & PG_ZERO) == 0)
- pmap_zero_page(m);
- vm_page_valid(m);
+ if ((allocflags & VM_ALLOC_ZERO) != 0) {
+ if ((m->flags & PG_ZERO) == 0)
+ pmap_zero_page(m);
+ vm_page_valid(m);
+ }
}
vm_page_grab_release(m, allocflags);
}
@@ -5288,8 +5292,7 @@
if (m == NULL)
break;
if ((flags & VM_ALLOC_ZERO) != 0 && vm_page_none_valid(m)) {
- if ((m->flags & PG_ZERO) == 0)
- pmap_zero_page(m);
+ pmap_zero_page(m);
vm_page_valid(m);
}
/* m will still be wired or busy according to flags. */

File Metadata

Mime Type
text/plain
Expires
Wed, Apr 22, 12:36 PM (16 h, 48 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31731704
Default Alt Text
D56432.diff (1 KB)

Event Timeline