Merge 86100918ae
on remote branch
Change-Id: I81ea7be9139d6652ab4988e5da9aa2aa15e02070
This commit is contained in:
commit
db37144643
@ -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;
|
||||
|
@ -7120,16 +7120,13 @@ int ipa3_alloc_counter_id(struct ipa_ioc_flt_rt_counter_alloc *header)
|
||||
{
|
||||
int i, unused_cnt, unused_max, unused_start_id;
|
||||
struct ipa_ioc_flt_rt_counter_alloc *counter;
|
||||
|
||||
idr_preload(GFP_KERNEL);
|
||||
spin_lock(&ipa3_ctx->flt_rt_counters.hdl_lock);
|
||||
|
||||
counter = kmem_cache_zalloc(ipa3_ctx->fnr_stats_cache, GFP_KERNEL);
|
||||
if (!counter) {
|
||||
IPAERR_RL("failed to alloc fnr stats counter object\n");
|
||||
spin_unlock(&ipa3_ctx->flt_rt_counters.hdl_lock);
|
||||
return -ENOMEM;
|
||||
}
|
||||
idr_preload(GFP_KERNEL);
|
||||
spin_lock(&ipa3_ctx->flt_rt_counters.hdl_lock);
|
||||
memcpy(counter, header, sizeof(struct ipa_ioc_flt_rt_counter_alloc));
|
||||
/* allocate hw counters */
|
||||
counter->hw_counter.start_id = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user