[PATCH] vt: refactor console SAK processing
authorEric W. Biederman <ebiederm@xmission.com>
Sat, 10 Feb 2007 09:44:34 +0000 (01:44 -0800)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Sun, 11 Feb 2007 18:51:24 +0000 (10:51 -0800)
commit8b6312f4dcc1efe7975731b6c47dd134282bd9ac
tree71c94b01bda940c5610d448d0f4a2aa3c7665b4c
parent0a7b35cb18c52d651f6ed9cd59edc979200ab880
[PATCH] vt: refactor console SAK processing

This does several things.
- It moves looking up of the current foreground console into process
  context where we can safely take the semaphore that protects this
  operation.
- It uses the new flavor of work queue processing.
- This generates a factor of do_SAK, __do_SAK that runs immediately.
- This calls __do_SAK with the console semaphore held ensuring nothing
  else happens to the console while we process the SAK operation.
- With the console SAK processing moved into process context this
  patch removes the xchg operations that I used to attempt to attomically
  update struct pid, because of the strange locking used in the SAK processing.
  With SAK using the normal console semaphore nothing special is needed.

Cc: Oleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/char/keyboard.c
drivers/char/sysrq.c
drivers/char/tty_io.c
drivers/char/vt_ioctl.c
include/linux/console_struct.h
include/linux/tty.h