Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/kern_exec.c
Show First 20 Lines • Show All 986 Lines • ▼ Show 20 Lines | for (i = 1; i < initial_pagein; i++) { | ||||
} else { | } else { | ||||
ma[i] = vm_page_alloc(object, i, | ma[i] = vm_page_alloc(object, i, | ||||
VM_ALLOC_NORMAL | VM_ALLOC_IFNOTCACHED); | VM_ALLOC_NORMAL | VM_ALLOC_IFNOTCACHED); | ||||
if (ma[i] == NULL) | if (ma[i] == NULL) | ||||
break; | break; | ||||
} | } | ||||
} | } | ||||
initial_pagein = i; | initial_pagein = i; | ||||
rv = vm_pager_get_pages(object, ma, initial_pagein, NULL, NULL); | rv = vm_pager_get_pages(object, ma, initial_pagein, NULL, NULL, VM_PROT_READ|VM_PROT_EXECUTE); | ||||
if (rv != VM_PAGER_OK) { | if (rv != VM_PAGER_OK) { | ||||
for (i = 0; i < initial_pagein; i++) { | for (i = 0; i < initial_pagein; i++) { | ||||
vm_page_lock(ma[i]); | vm_page_lock(ma[i]); | ||||
vm_page_free(ma[i]); | vm_page_free(ma[i]); | ||||
vm_page_unlock(ma[i]); | vm_page_unlock(ma[i]); | ||||
vm_page_xunbusy(ma[i]); | vm_page_xunbusy(ma[i]); | ||||
} | } | ||||
VM_OBJECT_WUNLOCK(object); | VM_OBJECT_WUNLOCK(object); | ||||
▲ Show 20 Lines • Show All 611 Lines • Show Last 20 Lines |