| From bfb6886d7c2d7b3bc8afc4b9c12d58e1c4166069 Mon Sep 17 00:00:00 2001 |
| From: Johan Hovold <johan@kernel.org> |
| Date: Wed, 8 Feb 2017 18:53:08 +0100 |
| Subject: [PATCH] USB: serial: console: fix uninitialised spinlock |
| |
| commit 14816b16fa0adac24f82492f18fa62c55acabbbe upstream. |
| |
| Since commit 4a510969374a ("tty: Make tty_files_lock per-tty") a new |
| tty_struct spin lock is taken in the tty release path, but the |
| USB-serial-console hack was never updated hence leaving the lock of its |
| "fake" tty uninitialised. This was eventually detected by lockdep. |
| |
| Make sure to initialise the new lock also for the fake tty to address |
| this regression. |
| |
| Yes, this code is a mess, but cleaning it up is left for another day. |
| |
| Fixes: 4a510969374a ("tty: Make tty_files_lock per-tty") |
| Cc: stable <stable@vger.kernel.org> # 4.6 |
| Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Signed-off-by: Johan Hovold <johan@kernel.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/usb/serial/console.c b/drivers/usb/serial/console.c |
| index 8967715fe6fc..b6f1adefb758 100644 |
| --- a/drivers/usb/serial/console.c |
| +++ b/drivers/usb/serial/console.c |
| @@ -143,6 +143,7 @@ static int usb_console_setup(struct console *co, char *options) |
| tty->driver = usb_serial_tty_driver; |
| tty->index = co->index; |
| init_ldsem(&tty->ldisc_sem); |
| + spin_lock_init(&tty->files_lock); |
| INIT_LIST_HEAD(&tty->tty_files); |
| kref_get(&tty->driver->kref); |
| __module_get(tty->driver->owner); |
| -- |
| 2.12.0 |
| |