This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix tst-pkey.c pkey_alloc return checks and manual


* Lucas A. M. Magalhaes:

> This test was failing in some powerpc systems as it was not checking
> for ENOSPC return.
>
> As said on the Linux man-pages and can be observed by the implementation
> at mm/mprotect.c in the Linux Kernel source.  The syscall pkey_alloc can
> return EINVAL or ENOSPC.  ENOSPC will indicate either that all keys are
> in use or that the kernel does not support pkeys.
> ---
>  manual/memory.texi                 | 4 ++++
>  sysdeps/unix/sysv/linux/tst-pkey.c | 4 ++++
>  2 files changed, 8 insertions(+)
>
> diff --git a/manual/memory.texi b/manual/memory.texi
> index b565dd69f2..aa5011e4f9 100644
> --- a/manual/memory.texi
> +++ b/manual/memory.texi
> @@ -3288,6 +3288,10 @@ in which memory protection keys are disabled.
>  
>  @item ENOSPC
>  All available protection keys already have been allocated.
> +
> +The system does not implement memory protection keys or runs in a mode
> +in which memory protection keys are disabled.
> +
>  @end table
>  @end deftypefun
>  
> diff --git a/sysdeps/unix/sysv/linux/tst-pkey.c b/sysdeps/unix/sysv/linux/tst-pkey.c
> index 4c4fbae3ad..4ea1bc4f9a 100644
> --- a/sysdeps/unix/sysv/linux/tst-pkey.c
> +++ b/sysdeps/unix/sysv/linux/tst-pkey.c
> @@ -197,6 +197,10 @@ do_test (void)
>        if (errno == EINVAL)
>          FAIL_UNSUPPORTED
>            ("CPU does not support memory protection keys: %m");
> +      if (errno == ENOSPC)
> +        FAIL_UNSUPPORTED
> +          ("no keys available or kernel does not support memory"
> +           " protection keys");
>        FAIL_EXIT1 ("pkey_alloc: %m");
>      }
>    TEST_COMPARE (pkey_get (keys[0]), 0);

Looks okay to me.

Siddhesh has to approve this as the release manager, though.

Thanks,
Florian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]