Changeset View
Changeset View
Standalone View
Standalone View
head/sys/amd64/vmm/vmm.c
Show First 20 Lines • Show All 748 Lines • ▼ Show 20 Lines | vm_mmap_memseg(struct vm *vm, vm_paddr_t gpa, int segid, vm_ooffset_t first, | ||||
vm_object_reference(seg->object); | vm_object_reference(seg->object); | ||||
if (flags & VM_MEMMAP_F_WIRED) { | if (flags & VM_MEMMAP_F_WIRED) { | ||||
error = vm_map_wire(&vm->vmspace->vm_map, gpa, gpa + len, | error = vm_map_wire(&vm->vmspace->vm_map, gpa, gpa + len, | ||||
VM_MAP_WIRE_USER | VM_MAP_WIRE_NOHOLES); | VM_MAP_WIRE_USER | VM_MAP_WIRE_NOHOLES); | ||||
if (error != KERN_SUCCESS) { | if (error != KERN_SUCCESS) { | ||||
vm_map_remove(&vm->vmspace->vm_map, gpa, gpa + len); | vm_map_remove(&vm->vmspace->vm_map, gpa, gpa + len); | ||||
return (EFAULT); | return (error == KERN_RESOURCE_SHORTAGE ? ENOMEM : | ||||
EFAULT); | |||||
} | } | ||||
} | } | ||||
map->gpa = gpa; | map->gpa = gpa; | ||||
map->len = len; | map->len = len; | ||||
map->segoff = first; | map->segoff = first; | ||||
map->segid = segid; | map->segid = segid; | ||||
map->prot = prot; | map->prot = prot; | ||||
▲ Show 20 Lines • Show All 1,953 Lines • Show Last 20 Lines |