diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2006-10-02 02:17:13 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-02 07:57:13 -0700 |
commit | 81af8d67d4fc35b1ee6e0feb1f1b34b3a33eeb44 (patch) | |
tree | 0217dde7d28427e9b6ac587fd4edb9fb1f8f11b4 /include/linux/vt_kern.h | |
parent | 5feb8f5f8403d8874a04aac443692dfe83bd63d2 (diff) | |
download | blackbird-op-linux-81af8d67d4fc35b1ee6e0feb1f1b34b3a33eeb44.tar.gz blackbird-op-linux-81af8d67d4fc35b1ee6e0feb1f1b34b3a33eeb44.zip |
[PATCH] vt: rework the console spawning variables
This is such a rare path it took me a while to figure out how to test
this after soring out the locking.
This patch does several things.
- The variables used are moved into a structure and declared in vt_kern.h
- A spinlock is added so we don't have SMP races updating the values.
- Instead of raw pid_t value a struct_pid is used to guard against
pid wrap around issues, if the daemon to spawn a new console dies.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Cc: Oleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux/vt_kern.h')
-rw-r--r-- | include/linux/vt_kern.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/include/linux/vt_kern.h b/include/linux/vt_kern.h index 1009d3fe1fc2..37a1a41f5b65 100644 --- a/include/linux/vt_kern.h +++ b/include/linux/vt_kern.h @@ -84,4 +84,11 @@ void reset_vc(struct vc_data *vc); extern char con_buf[CON_BUF_SIZE]; extern struct semaphore con_buf_sem; +struct vt_spawn_console { + spinlock_t lock; + struct pid *pid; + int sig; +}; +extern struct vt_spawn_console vt_spawn_con; + #endif /* _VT_KERN_H */ |