Changeset View
Changeset View
Standalone View
Standalone View
head/sys/arm/arm/pmap-v4.c
Show First 20 Lines • Show All 3,242 Lines • ▼ Show 20 Lines | if (l2b == NULL) | ||||
l2b = pmap_grow_l2_bucket(pmap, va); | l2b = pmap_grow_l2_bucket(pmap, va); | ||||
} else { | } else { | ||||
do_l2b_alloc: | do_l2b_alloc: | ||||
l2b = pmap_alloc_l2_bucket(pmap, va); | l2b = pmap_alloc_l2_bucket(pmap, va); | ||||
if (l2b == NULL) { | if (l2b == NULL) { | ||||
if ((flags & PMAP_ENTER_NOSLEEP) == 0) { | if ((flags & PMAP_ENTER_NOSLEEP) == 0) { | ||||
PMAP_UNLOCK(pmap); | PMAP_UNLOCK(pmap); | ||||
rw_wunlock(&pvh_global_lock); | rw_wunlock(&pvh_global_lock); | ||||
VM_WAIT; | vm_wait(NULL); | ||||
rw_wlock(&pvh_global_lock); | rw_wlock(&pvh_global_lock); | ||||
PMAP_LOCK(pmap); | PMAP_LOCK(pmap); | ||||
goto do_l2b_alloc; | goto do_l2b_alloc; | ||||
} | } | ||||
return (KERN_RESOURCE_SHORTAGE); | return (KERN_RESOURCE_SHORTAGE); | ||||
} | } | ||||
} | } | ||||
▲ Show 20 Lines • Show All 1,600 Lines • Show Last 20 Lines |