On Fri, Feb 17, 2017 at 08:18:36PM +1100, Jonathan Gray wrote:
> On Fri, Feb 17, 2017 at 02:11:55AM -0500, Dale Rahn wrote:
> > The logic to handle PMAP_CANFAIL, the logic was inverted originally.
> > 
> > Code has been simplified so that it is test for if !CANFAIL then panic
> 
> Looks good, but how about using __func__?  Avoids going > 80 in one case.

This is a nice improvement over my proposal.

Thanks
Dale
> 
> Index: pmap.c
> ===================================================================
> RCS file: /cvs/src/sys/arch/arm64/arm64/pmap.c,v
> retrieving revision 1.20
> diff -u -p -r1.20 pmap.c
> --- pmap.c    7 Feb 2017 23:05:33 -0000       1.20
> +++ pmap.c    17 Feb 2017 09:13:44 -0000
> @@ -370,8 +370,9 @@ pmap_vp_enter(pmap_t pm, vaddr_t va, str
>                       vp1 = pool_get(&pmap_vp_pool, vp_pool_flags);
>                       if (vp1 == NULL) {
>                               if ((flags & PMAP_CANFAIL) == 0)
> -                                     return ENOMEM;
> -                             panic("unable to allocate L1");
> +                                     panic("%s: unable to allocate L1",
> +                                         __func__);
> +                             return ENOMEM;
>                       }
>                       pmap_set_l1(pm, va, vp1, 0);
>               }
> @@ -384,8 +385,8 @@ pmap_vp_enter(pmap_t pm, vaddr_t va, str
>               vp2 = pool_get(&pmap_vp_pool, vp_pool_flags);
>               if (vp2 == NULL) {
>                       if ((flags & PMAP_CANFAIL) == 0)
> -                             return ENOMEM;
> -                     panic("unable to allocate L2");
> +                             panic("%s: unable to allocate L2", __func__);
> +                     return ENOMEM;
>               }
>               pmap_set_l2(pm, va, vp2, 0);
>       }
> @@ -395,8 +396,8 @@ pmap_vp_enter(pmap_t pm, vaddr_t va, str
>               vp3 = pool_get(&pmap_vp_pool, vp_pool_flags);
>               if (vp3 == NULL) {
>                       if ((flags & PMAP_CANFAIL) == 0)
> -                             return ENOMEM;
> -                     panic("unable to allocate L3");
> +                             panic("%s: unable to allocate L3", __func__);
> +                     return ENOMEM;
>               }
>               pmap_set_l3(pm, va, vp3, 0);
>       }
> @@ -503,19 +504,17 @@ pmap_enter(pmap_t pm, vaddr_t va, paddr_
>       if (pted == NULL) {
>               pted = pool_get(&pmap_pted_pool, PR_NOWAIT | PR_ZERO);
>               if (pted == NULL) {
> -                     if ((flags & PMAP_CANFAIL) == 0) {
> -                             error = ENOMEM;
> -                             goto out;
> -                     }
> -                     panic("pmap_enter: failed to allocate pted");
> +                     if ((flags & PMAP_CANFAIL) == 0)
> +                             panic("%s: failed to allocate pted", __func__);
> +                     error = ENOMEM;
> +                     goto out;
>               }
>               if (pmap_vp_enter(pm, va, pted, flags)) {
> -                     if ((flags & PMAP_CANFAIL) == 0) {
> -                             error = ENOMEM;
> -                             pool_put(&pmap_pted_pool, pted);
> -                             goto out;
> -                     }
> -                     panic("pmap_enter: failed to allocate L2/L3");
> +                     if ((flags & PMAP_CANFAIL) == 0)
> +                             panic("%s: failed to allocate L2/L3", __func__);
> +                     error = ENOMEM;
> +                     pool_put(&pmap_pted_pool, pted);
> +                     goto out;
>               }
>       }
>  
> 
Dale Rahn                               dr...@dalerahn.com

Reply via email to