diff options
author | Johan Hovold <johan@kernel.org> | 2017-04-26 13:23:04 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-05-20 15:26:59 +0300 |
commit | 5ac489a80ffb93b08e13017009b3f7617618d8d5 (patch) | |
tree | 481f0e99eda78c147e8cd2a8b61b54df251601a4 /drivers/staging | |
parent | 265500bf9802a345a3b942d82e4b9292c6e3d92e (diff) | |
download | linux-5ac489a80ffb93b08e13017009b3f7617618d8d5.tar.xz |
staging: gdm724x: gdm_mux: fix use-after-free on module unload
commit b58f45c8fc301fe83ee28cad3e64686c19e78f1c upstream.
Make sure to deregister the USB driver before releasing the tty driver
to avoid use-after-free in the USB disconnect callback where the tty
devices are deregistered.
Fixes: 61e121047645 ("staging: gdm7240: adding LTE USB driver")
Cc: Won Kang <wkang77@gmail.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging')
-rw-r--r-- | drivers/staging/gdm724x/gdm_mux.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/staging/gdm724x/gdm_mux.c b/drivers/staging/gdm724x/gdm_mux.c index 445f83615575..fb4f3fea6c66 100644 --- a/drivers/staging/gdm724x/gdm_mux.c +++ b/drivers/staging/gdm724x/gdm_mux.c @@ -670,14 +670,14 @@ static int __init gdm_usb_mux_init(void) static void __exit gdm_usb_mux_exit(void) { - unregister_lte_tty_driver(); - if (mux_rx_wq) { flush_workqueue(mux_rx_wq); destroy_workqueue(mux_rx_wq); } usb_deregister(&gdm_mux_driver); + unregister_lte_tty_driver(); + } module_init(gdm_usb_mux_init); |