Skip to content

Commit 614fa01

Browse files
committed
Fix logic error related to CANFAIL
1 parent 00e8461 commit 614fa01

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

sys/arch/arm64/arm64/pmap.c

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -393,8 +393,8 @@ pmap_vp_enter(pmap_t pm, vaddr_t va, struct pte_desc *pted, int flags)
393393
vp1 = pool_get(&pmap_vp_pool, vp_pool_flags);
394394
if (vp1 == NULL) {
395395
if ((flags & PMAP_CANFAIL) == 0)
396-
return ENOMEM;
397-
panic("unable to allocate L1");
396+
panic("pmap_vp_enter: unable to allocate L1");
397+
return ENOMEM;
398398
}
399399
pmap_set_l1(pm, va, vp1, 0);
400400
}
@@ -407,8 +407,8 @@ pmap_vp_enter(pmap_t pm, vaddr_t va, struct pte_desc *pted, int flags)
407407
vp2 = pool_get(&pmap_vp_pool, vp_pool_flags);
408408
if (vp2 == NULL) {
409409
if ((flags & PMAP_CANFAIL) == 0)
410-
return ENOMEM;
411-
panic("unable to allocate L2");
410+
panic("pmap_vp_enter: unable to allocate L2");
411+
return ENOMEM;
412412
}
413413
pmap_set_l2(pm, va, vp2, 0);
414414
}
@@ -418,8 +418,8 @@ pmap_vp_enter(pmap_t pm, vaddr_t va, struct pte_desc *pted, int flags)
418418
vp3 = pool_get(&pmap_vp_pool, vp_pool_flags);
419419
if (vp3 == NULL) {
420420
if ((flags & PMAP_CANFAIL) == 0)
421-
return ENOMEM;
422-
panic("unable to allocate L3");
421+
panic("pmap_vp_enter: unable to allocate L3");
422+
return ENOMEM;
423423
}
424424
pmap_set_l3(pm, va, vp3, 0);
425425
}
@@ -538,18 +538,18 @@ pmap_enter(pmap_t pm, vaddr_t va, paddr_t pa, vm_prot_t prot, int flags)
538538
pted = pool_get(&pmap_pted_pool, PR_NOWAIT | PR_ZERO);
539539
if (pted == NULL) {
540540
if ((flags & PMAP_CANFAIL) == 0) {
541-
error = ENOMEM;
542-
goto out;
541+
panic("pmap_enter: failed to allocate pted");
543542
}
544-
panic("pmap_enter: failed to allocate pted");
543+
error = ENOMEM;
544+
goto out;
545545
}
546546
if (pmap_vp_enter(pm, va, pted, flags)) {
547547
if ((flags & PMAP_CANFAIL) == 0) {
548-
error = ENOMEM;
549-
pool_put(&pmap_pted_pool, pted);
550-
goto out;
548+
panic("pmap_enter: failed to allocate L2/L3");
551549
}
552-
panic("pmap_enter: failed to allocate L2/L3");
550+
error = ENOMEM;
551+
pool_put(&pmap_pted_pool, pted);
552+
goto out;
553553
}
554554
}
555555

0 commit comments

Comments
 (0)