diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2006-10-02 05:17:13 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-02 10:57:13 -0400 |
commit | 81af8d67d4fc35b1ee6e0feb1f1b34b3a33eeb44 (patch) | |
tree | 0217dde7d28427e9b6ac587fd4edb9fb1f8f11b4 /include/linux/vt_kern.h | |
parent | 5feb8f5f8403d8874a04aac443692dfe83bd63d2 (diff) |
[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); | |||
84 | extern char con_buf[CON_BUF_SIZE]; | 84 | extern char con_buf[CON_BUF_SIZE]; |
85 | extern struct semaphore con_buf_sem; | 85 | extern struct semaphore con_buf_sem; |
86 | 86 | ||
87 | struct vt_spawn_console { | ||
88 | spinlock_t lock; | ||
89 | struct pid *pid; | ||
90 | int sig; | ||
91 | }; | ||
92 | extern struct vt_spawn_console vt_spawn_con; | ||
93 | |||
87 | #endif /* _VT_KERN_H */ | 94 | #endif /* _VT_KERN_H */ |