summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_map.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/vm/vm_map.c')
-rw-r--r--sys/vm/vm_map.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c
index dc7a490..b5651ef 100644
--- a/sys/vm/vm_map.c
+++ b/sys/vm/vm_map.c
@@ -1719,7 +1719,7 @@ vm_map_pmap_enter(vm_map_t map, vm_offset_t addr, vm_prot_t prot,
if ((prot & (VM_PROT_READ | VM_PROT_EXECUTE)) == 0 || object == NULL)
return;
VM_OBJECT_LOCK(object);
- if (object->type == OBJT_DEVICE) {
+ if (object->type == OBJT_DEVICE || object->type == OBJT_SG) {
pmap_object_init_pt(map->pmap, addr, object, pindex, size);
goto unlock_return;
}
@@ -2247,7 +2247,8 @@ done:
*/
vm_fault_unwire(map, entry->start, entry->end,
entry->object.vm_object != NULL &&
- entry->object.vm_object->type == OBJT_DEVICE);
+ (entry->object.vm_object->type == OBJT_DEVICE ||
+ entry->object.vm_object->type == OBJT_SG));
}
}
KASSERT(entry->eflags & MAP_ENTRY_IN_TRANSITION,
@@ -2366,7 +2367,8 @@ vm_map_wire(vm_map_t map, vm_offset_t start, vm_offset_t end,
saved_start = entry->start;
saved_end = entry->end;
fictitious = entry->object.vm_object != NULL &&
- entry->object.vm_object->type == OBJT_DEVICE;
+ (entry->object.vm_object->type == OBJT_DEVICE ||
+ entry->object.vm_object->type == OBJT_SG);
/*
* Release the map lock, relying on the in-transition
* mark.
@@ -2462,7 +2464,8 @@ done:
*/
vm_fault_unwire(map, entry->start, entry->end,
entry->object.vm_object != NULL &&
- entry->object.vm_object->type == OBJT_DEVICE);
+ (entry->object.vm_object->type == OBJT_DEVICE ||
+ entry->object.vm_object->type == OBJT_SG));
}
}
next_entry_done:
@@ -2595,7 +2598,8 @@ vm_map_entry_unwire(vm_map_t map, vm_map_entry_t entry)
{
vm_fault_unwire(map, entry->start, entry->end,
entry->object.vm_object != NULL &&
- entry->object.vm_object->type == OBJT_DEVICE);
+ (entry->object.vm_object->type == OBJT_DEVICE ||
+ entry->object.vm_object->type == OBJT_SG));
entry->wired_count = 0;
}
OpenPOWER on IntegriCloud