From: Jiri Slaby Date: Mon, 5 Mar 2012 13:51:56 +0000 (+0100) Subject: TTY: tty_driver, document tty->ops->shutdown limitation X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=26b23209c0ea5503824df60b8f218fb04b80cad0;p=mv-sheeva.git TTY: tty_driver, document tty->ops->shutdown limitation Note that tty->ops->shutdown is called from whatever context the user drops the last tty reference from. E.g. if one takes a reference in an ISR, tty close happens on other CPU and the final tty put is from the ISR, tty->ops->shutdown will be called from that hard irq context. We would have a problem in vt if we start using tty refcounting from other contexts than user there. It is because vt's shutdown uses mutexes. This is yet to be fixed. Signed-off-by: Jiri Slaby Reported-by: Al Viro Signed-off-by: Greg Kroah-Hartman --- diff --git a/include/linux/tty_driver.h b/include/linux/tty_driver.h index e064f1704e2..6e6dbb7447b 100644 --- a/include/linux/tty_driver.h +++ b/include/linux/tty_driver.h @@ -50,6 +50,8 @@ * Note that tty_shutdown() is not called if ops->shutdown is defined. * This means one is responsible to take care of calling ops->remove (e.g. * via tty_driver_remove_tty) and releasing tty->termios. + * Note that this hook may be called from *all* the contexts where one + * uses tty refcounting (e.g. tty_port_tty_get). * * * void (*cleanup)(struct tty_struct * tty);