2013-04-09 13:00:52

by Andrei Epure

[permalink] [raw]
Subject: [PATCH] include:linux: task_struct personality comment

Signed-off-by: Andrei Epure <[email protected]>
---
include/linux/sched.h | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/include/linux/sched.h b/include/linux/sched.h
index d35d2b6..8621bb0 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1274,8 +1274,10 @@ struct task_struct {
int exit_code, exit_signal;
int pdeath_signal; /* The signal sent when the parent dies */
unsigned int jobctl; /* JOBCTL_*, siglock protected */
- /* ??? */
+
+ /* used with exec_domain for compatibility with other UNIX-like OSs */
unsigned int personality;
+
unsigned did_exec:1;
unsigned in_execve:1; /* Tell the LSMs that the process is doing an
* execve */
--
1.7.9.5


2013-04-10 09:30:46

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH] include:linux: task_struct personality comment


* Andrei Epure <[email protected]> wrote:

> Signed-off-by: Andrei Epure <[email protected]>
> ---
> include/linux/sched.h | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/include/linux/sched.h b/include/linux/sched.h
> index d35d2b6..8621bb0 100644
> --- a/include/linux/sched.h
> +++ b/include/linux/sched.h
> @@ -1274,8 +1274,10 @@ struct task_struct {
> int exit_code, exit_signal;
> int pdeath_signal; /* The signal sent when the parent dies */
> unsigned int jobctl; /* JOBCTL_*, siglock protected */
> - /* ??? */
> +
> + /* used with exec_domain for compatibility with other UNIX-like OSs */
> unsigned int personality;

I don't mind documenting the p->personality flag, but in practice it's not used
for emulation of other OSs really, but for emulating ABI behavior with previous
_Linux_ versions, see include/uapi/linux/personality.h:

* Flags for bug emulation.
*
* These occupy the top three bytes.
*/
enum {
UNAME26 = 0x0020000,
ADDR_NO_RANDOMIZE = 0x0040000, /* disable randomization of VA space */
FDPIC_FUNCPTRS = 0x0080000, /* userspace function ptrs point to descriptors
* (signal handling)
*/
MMAP_PAGE_ZERO = 0x0100000,
ADDR_COMPAT_LAYOUT = 0x0200000,
READ_IMPLIES_EXEC = 0x0400000,
ADDR_LIMIT_32BIT = 0x0800000,
SHORT_INODE = 0x1000000,
WHOLE_SECONDS = 0x2000000,
STICKY_TIMEOUTS = 0x4000000,
ADDR_LIMIT_3GB = 0x8000000,

So the updated comment should say that.

Thanks,

Ingo

2013-04-10 14:57:16

by Andrei Epure

[permalink] [raw]
Subject: Re: [PATCH] include:linux: task_struct personality comment

On 10 April 2013 12:30, Ingo Molnar <[email protected]> wrote:
>
> I don't mind documenting the p->personality flag, but in practice it's not used
> for emulation of other OSs really, but for emulating ABI behavior with previous
> _Linux_ versions, see include/uapi/linux/personality.h:
>
>
> So the updated comment should say that.
>

Ok, thanks, I will send a v2.

Andrei



--
Andrei Epure