summaryrefslogtreecommitdiff
path: root/drivers/usb/serial
diff options
context:
space:
mode:
authorVinayak Pane <vpane@nvidia.com>2012-01-05 15:28:54 -0800
committerVarun Colbert <vcolbert@nvidia.com>2012-01-30 12:31:23 -0800
commit911318c9e3c928bb6d835f0c5a14d7780d390a65 (patch)
tree5a01e0ce8e1f9fbf2330284e1c3dea496d98457d /drivers/usb/serial
parent5058297dfe2449fc2a4e7acdbef3b75caf073c8a (diff)
arm: tegra: comms: fix crash at dev attr change
Check the state machine before poweron the modem by device attribute change routine. Maintain the state machine to avoid crash after writing state change to /sys/devices/platform/baseband_xmm_power/xmm_onoff Also cancel workqueue at module unload to avoid possible crash. Bug 898008 Reviewed-on: http://git-master/r/72934 Change-Id: I0d8286774040f155c930ecb0bb69778de6c606ac Signed-off-by: Vinayak Pane <vpane@nvidia.com> Signed-off-by: Varun Wadekar <vwadekar@nvidia.com> Reviewed-on: http://git-master/r/77744 Reviewed-by: Automatic_Commit_Validation_User
Diffstat (limited to 'drivers/usb/serial')
-rw-r--r--drivers/usb/serial/baseband_usb_chr.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/usb/serial/baseband_usb_chr.c b/drivers/usb/serial/baseband_usb_chr.c
index bb2649dc4c36..18bffdfda223 100644
--- a/drivers/usb/serial/baseband_usb_chr.c
+++ b/drivers/usb/serial/baseband_usb_chr.c
@@ -475,6 +475,7 @@ static void baseband_ipc_close(struct baseband_ipc *ipc)
/* destroy work queue */
if (ipc->workqueue) {
pr_debug("destroy workqueue {\n");
+ cancel_work_sync(&ipc->work);
destroy_workqueue(ipc->workqueue);
ipc->workqueue = (struct workqueue_struct *) 0;
pr_debug("destroy workqueue }\n");