summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2016-07-13 15:45:35 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2016-07-13 15:45:35 -0700
commita53e735b558a14465c60b13bd0f76db4b321ee4f (patch)
treef821970b1c5bb5773cf6d81a0c5426f3612d55c7
parent2b8fc67b852558e75370923897a52fd2970832db (diff)
parentdf159d60d80289cd92d26cbe77421760f61c1fe4 (diff)
Merge "soc: qcom: glink_smd_xprt: Fix smd close ack for legacy channel"
-rw-r--r--drivers/soc/qcom/glink_smd_xprt.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/soc/qcom/glink_smd_xprt.c b/drivers/soc/qcom/glink_smd_xprt.c
index cb5bf94b8e67..6abe943069d0 100644
--- a/drivers/soc/qcom/glink_smd_xprt.c
+++ b/drivers/soc/qcom/glink_smd_xprt.c
@@ -731,6 +731,7 @@ static void process_reopen_event(struct work_struct *work)
mutex_unlock(&einfo->rx_cmd_lock);
}
if (ch->local_legacy) {
+ ch->local_legacy = false;
mutex_lock(&einfo->rx_cmd_lock);
einfo->xprt_if.glink_core_if_ptr->rx_cmd_ch_close_ack(
&einfo->xprt_if,
@@ -944,6 +945,7 @@ static void smd_data_ch_close(struct channel *ch)
ch->smd_ch = NULL;
} else if (ch->local_legacy) {
ch_work = kzalloc(sizeof(*ch_work), GFP_KERNEL);
+ ch->local_legacy = false;
if (ch_work) {
ch_work->ch = ch;
INIT_WORK(&ch_work->work, deferred_close_ack);
@@ -952,7 +954,6 @@ static void smd_data_ch_close(struct channel *ch)
}
mutex_unlock(&ch->ch_probe_lock);
- ch->local_legacy = false;
spin_lock_irqsave(&ch->intents_lock, flags);
while (!list_empty(&ch->intents)) {