diff options
author | Linux Build Service Account <lnxbuild@quicinc.com> | 2017-07-28 00:21:12 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-07-28 00:21:12 -0700 |
commit | 8233df121fce4bb44e8d2583899f0f7410de2a33 (patch) | |
tree | 1f4a49e5ddd0ce4d7bd91a9a64cb9da6a26292fe /drivers/char | |
parent | 96e98ab9bbdb35840782553d005105fd8c6e18f7 (diff) | |
parent | bf74f23874703cd423f38621ee14bb78a00a939f (diff) |
Merge "diag: Flush control workqueue immediately on channel close"
Diffstat (limited to 'drivers/char')
-rw-r--r-- | drivers/char/diag/diagfwd_cntl.c | 1 | ||||
-rw-r--r-- | drivers/char/diag/diagfwd_peripheral.c | 3 |
2 files changed, 3 insertions, 1 deletions
diff --git a/drivers/char/diag/diagfwd_cntl.c b/drivers/char/diag/diagfwd_cntl.c index 4ae2158b5a6b..74777212e4cf 100644 --- a/drivers/char/diag/diagfwd_cntl.c +++ b/drivers/char/diag/diagfwd_cntl.c @@ -67,7 +67,6 @@ void diag_cntl_channel_close(struct diagfwd_info *p_info) driver->feature[peripheral].sent_feature_mask = 0; driver->feature[peripheral].rcvd_feature_mask = 0; - flush_workqueue(driver->cntl_wq); reg_dirty |= PERIPHERAL_MASK(peripheral); diag_cmd_remove_reg_by_proc(peripheral); driver->feature[peripheral].stm_support = DISABLE_STM; diff --git a/drivers/char/diag/diagfwd_peripheral.c b/drivers/char/diag/diagfwd_peripheral.c index 6860de0d2288..78b8452b19b3 100644 --- a/drivers/char/diag/diagfwd_peripheral.c +++ b/drivers/char/diag/diagfwd_peripheral.c @@ -1285,6 +1285,9 @@ int diagfwd_channel_close(struct diagfwd_info *fwd_info) if (!fwd_info) return -EIO; + if (fwd_info->type == TYPE_CNTL) + flush_workqueue(driver->cntl_wq); + mutex_lock(&driver->diagfwd_channel_mutex[fwd_info->peripheral]); fwd_info->ch_open = 0; if (fwd_info && fwd_info->c_ops && fwd_info->c_ops->close) |