[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>
This commit is contained in:
committed by
Linus Torvalds
parent
5feb8f5f84
commit
81af8d67d4
@@ -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 */
|
||||
|
Reference in New Issue
Block a user