summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@quicinc.com>2017-10-26 14:47:33 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-10-26 14:47:33 -0700
commitf5caf269cd1fd4d8e6c0b8bbbef03f0bd5437f22 (patch)
treeca0ab28dbdd0c311746f4c9823b1750e3c32369a
parent2db878d52eef51fcc49af58f35db373ba6d09335 (diff)
parent9ed48188263f859ad217af7be0f39b96f8b26f77 (diff)
Merge "soc: qcom: glink: Add downvote of transport during SSR"
-rw-r--r--drivers/soc/qcom/glink.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/soc/qcom/glink.c b/drivers/soc/qcom/glink.c
index ad9bf3a2232d..b8464fdfd310 100644
--- a/drivers/soc/qcom/glink.c
+++ b/drivers/soc/qcom/glink.c
@@ -4294,6 +4294,12 @@ static void glink_core_channel_cleanup(struct glink_core_xprt_ctx *xprt_ptr)
rwref_read_get(&xprt_ptr->xprt_state_lhb0);
ctx = get_first_ch_ctx(xprt_ptr);
while (ctx) {
+ spin_lock_irqsave(&xprt_ptr->tx_ready_lock_lhb3, flags);
+ spin_lock(&ctx->tx_lists_lock_lhc3);
+ if (!list_empty(&ctx->tx_active))
+ glink_qos_done_ch_tx(ctx);
+ spin_unlock(&ctx->tx_lists_lock_lhc3);
+ spin_unlock_irqrestore(&xprt_ptr->tx_ready_lock_lhb3, flags);
rwref_write_get_atomic(&ctx->ch_state_lhb2, true);
if (ctx->local_open_state == GLINK_CHANNEL_OPENED ||
ctx->local_open_state == GLINK_CHANNEL_OPENING) {