Re: [PATCH v2 2/2] prctl.2: Document the new PR_GET_TASK_SIZE option

From: Yury Norov
Date: Thu May 02 2019 - 18:23:51 EST


ÑÑ, 2 ÐÐÑ 2019 Ð. Ð 13:52, Joel Savitz <jsavitz@xxxxxxxxxx>:
>
> Add a short explanation of the new PR_GET_TASK_SIZE option for the benefit
> of future generations.
>
> Signed-off-by: Joel Savitz <jsavitz@xxxxxxxxxx>
> ---
> man2/prctl.2 | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/man2/prctl.2 b/man2/prctl.2
> index 06d8e13c7..35a6a3919 100644
> --- a/man2/prctl.2
> +++ b/man2/prctl.2
> @@ -49,6 +49,7 @@
> .\" 2013-01-10 Kees Cook, document PR_SET_PTRACER
> .\" 2012-02-04 Michael Kerrisk, document PR_{SET,GET}_CHILD_SUBREAPER
> .\" 2014-11-10 Dave Hansen, document PR_MPX_{EN,DIS}ABLE_MANAGEMENT
> +.\" 2019-05-02 Joel Savitz, document PR_GET_TASK_SIZE
> .\"
> .\"
> .TH PRCTL 2 2019-03-06 "Linux" "Linux Programmer's Manual"
> @@ -1375,6 +1376,14 @@ system call on Tru64).
> for information on versions and architectures)
> Return unaligned access control bits, in the location pointed to by
> .IR "(unsigned int\ *) arg2" .
> +.TP
> +.B PR_GET_TASK_SIZE
> +Copy the value of TASK_SIZE to the userspace address in
> +.IR "(unsigned long\ *) arg2" .

This is a bad idea to use pointers to size-undefined types in interface because
that way you have to introduce compat versions of interface functions.
I'd recommend you to use u64 or unsigned long long here.

The comment not clear for reader not familiar with kernel internals.
Can you rephrase
TASK_SIZE like 'the (next after) highest possible userspace address',
or similar?

For the updated version could you please CC to yury.norov@xxxxxxxxx?

> +Return
> +.B EFAULT
> +if this operation fails.
> +
> .SH RETURN VALUE
> On success,
> .BR PR_GET_DUMPABLE ,
> --
> 2.18.1
>