Merge "msm: ipa3: Change spin lock in release_gsi_channel"

This commit is contained in:
qctecmdr 2021-08-17 16:19:48 -07:00 • committed by Gerrit - the friendly Code Review server
commit 86100918ae

View file

@ -1609,6 +1609,7 @@ int ipa3_release_gsi_channel(u32 clnt_hdl)
struct ipa3_ep_context *ep;
int result = -EFAULT;
enum gsi_status gsi_res;
unsigned long flags;
IPADBG("entry\n");
if (clnt_hdl >= ipa3_ctx->ipa_num_pipes ||
@ -1623,10 +1624,9 @@ int ipa3_release_gsi_channel(u32 clnt_hdl)
IPA_ACTIVE_CLIENTS_INC_EP(ipa3_get_client_mapping(clnt_hdl));
/* Set the disconnect in progress flag to avoid calling cb.*/
spin_lock(&ipa3_ctx->disconnect_lock);
spin_lock_irqsave(&ipa3_ctx->disconnect_lock, flags);
atomic_set(&ep->disconnect_in_progress, 1);
spin_unlock(&ipa3_ctx->disconnect_lock);
spin_unlock_irqrestore(&ipa3_ctx->disconnect_lock, flags);
gsi_res = gsi_dealloc_channel(ep->gsi_chan_hdl);
if (gsi_res != GSI_STATUS_SUCCESS) {
@ -1646,9 +1646,9 @@ int ipa3_release_gsi_channel(u32 clnt_hdl)
if (!ep->keep_ipa_awake)
IPA_ACTIVE_CLIENTS_DEC_EP(ipa3_get_client_mapping(clnt_hdl));
spin_lock(&ipa3_ctx->disconnect_lock);
spin_lock_irqsave(&ipa3_ctx->disconnect_lock, flags);
memset(&ipa3_ctx->ep[clnt_hdl], 0, sizeof(struct ipa3_ep_context));
spin_unlock(&ipa3_ctx->disconnect_lock);
spin_unlock_irqrestore(&ipa3_ctx->disconnect_lock, flags);
IPADBG("exit\n");
return 0;