Untangle port-shutdown logic and make sure the initialised flag is
always cleared for non-console ports.
Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
static void tty_port_shutdown(struct tty_port *port)
{
mutex_lock(&port->mutex);
- if (port->ops->shutdown && !port->console &&
- test_and_clear_bit(ASYNCB_INITIALIZED, &port->flags))
+ if (port->console)
+ goto out;
+
+ if (test_and_clear_bit(ASYNCB_INITIALIZED, &port->flags)) {
+ if (port->ops->shutdown)
port->ops->shutdown(port);
+ }
+out:
mutex_unlock(&port->mutex);
}