Loading drivers/platform/msm/ipa/ipa_v3/Makefile +2 −1 Original line number Original line Diff line number Diff line Loading @@ -3,6 +3,7 @@ obj-$(CONFIG_IPA3) += ipahal/ obj-$(CONFIG_IPA3) += ipat.o obj-$(CONFIG_IPA3) += ipat.o ipat-y := ipa.o ipa_debugfs.o ipa_hdr.o ipa_flt.o ipa_rt.o ipa_dp.o ipa_client.o \ ipat-y := ipa.o ipa_debugfs.o ipa_hdr.o ipa_flt.o ipa_rt.o ipa_dp.o ipa_client.o \ ipa_utils.o ipa_nat.o ipa_intf.o teth_bridge.o ipa_interrupts.o \ ipa_utils.o ipa_nat.o ipa_intf.o teth_bridge.o ipa_interrupts.o \ ipa_uc.o ipa_uc_wdi.o ipa_dma.o ipa_uc_mhi.o ipa_mhi.o ipa_uc_ntn.o ipa_uc.o ipa_uc_wdi.o ipa_dma.o ipa_uc_mhi.o ipa_mhi.o ipa_uc_ntn.o \ ipa_hw_stats.o obj-$(CONFIG_RMNET_IPA3) += rmnet_ipa.o ipa_qmi_service_v01.o ipa_qmi_service.o rmnet_ipa_fd_ioctl.o obj-$(CONFIG_RMNET_IPA3) += rmnet_ipa.o ipa_qmi_service_v01.o ipa_qmi_service.o rmnet_ipa_fd_ioctl.o drivers/platform/msm/ipa/ipa_v3/ipa.c +29 −4 Original line number Original line Diff line number Diff line Loading @@ -3947,14 +3947,17 @@ static void ipa3_destroy_flt_tbl_idrs(void) int i; int i; struct ipa3_flt_tbl *flt_tbl; struct ipa3_flt_tbl *flt_tbl; idr_destroy(&ipa3_ctx->flt_rule_ids[IPA_IP_v4]); idr_destroy(&ipa3_ctx->flt_rule_ids[IPA_IP_v6]); for (i = 0; i < ipa3_ctx->ipa_num_pipes; i++) { for (i = 0; i < ipa3_ctx->ipa_num_pipes; i++) { if (!ipa_is_ep_support_flt(i)) if (!ipa_is_ep_support_flt(i)) continue; continue; flt_tbl = &ipa3_ctx->flt_tbl[i][IPA_IP_v4]; flt_tbl = &ipa3_ctx->flt_tbl[i][IPA_IP_v4]; idr_destroy(&flt_tbl->rule_ids); flt_tbl->rule_ids = NULL; flt_tbl = &ipa3_ctx->flt_tbl[i][IPA_IP_v6]; flt_tbl = &ipa3_ctx->flt_tbl[i][IPA_IP_v6]; idr_destroy(&flt_tbl->rule_ids); flt_tbl->rule_ids = NULL; } } } } Loading Loading @@ -4129,6 +4132,7 @@ static int ipa3_post_init(const struct ipa3_plat_drv_res *resource_p, struct ipa3_uc_hdlrs uc_hdlrs = { 0 }; struct ipa3_uc_hdlrs uc_hdlrs = { 0 }; struct ipa3_flt_tbl *flt_tbl; struct ipa3_flt_tbl *flt_tbl; int i; int i; struct idr *idr; if (ipa3_ctx == NULL) { if (ipa3_ctx == NULL) { IPADBG("IPA driver haven't initialized\n"); IPADBG("IPA driver haven't initialized\n"); Loading @@ -4152,6 +4156,11 @@ static int ipa3_post_init(const struct ipa3_plat_drv_res *resource_p, /* Assign resource limitation to each group */ /* Assign resource limitation to each group */ ipa3_set_resorce_groups_min_max_limits(); ipa3_set_resorce_groups_min_max_limits(); idr = &(ipa3_ctx->flt_rule_ids[IPA_IP_v4]); idr_init(idr); idr = &(ipa3_ctx->flt_rule_ids[IPA_IP_v6]); idr_init(idr); for (i = 0; i < ipa3_ctx->ipa_num_pipes; i++) { for (i = 0; i < ipa3_ctx->ipa_num_pipes; i++) { if (!ipa_is_ep_support_flt(i)) if (!ipa_is_ep_support_flt(i)) continue; continue; Loading @@ -4162,7 +4171,7 @@ static int ipa3_post_init(const struct ipa3_plat_drv_res *resource_p, !ipa3_ctx->ip4_flt_tbl_hash_lcl; !ipa3_ctx->ip4_flt_tbl_hash_lcl; flt_tbl->in_sys[IPA_RULE_NON_HASHABLE] = flt_tbl->in_sys[IPA_RULE_NON_HASHABLE] = !ipa3_ctx->ip4_flt_tbl_nhash_lcl; !ipa3_ctx->ip4_flt_tbl_nhash_lcl; idr_init(&flt_tbl->rule_ids); flt_tbl->rule_ids = &ipa3_ctx->flt_rule_ids[IPA_IP_v4]; flt_tbl = &ipa3_ctx->flt_tbl[i][IPA_IP_v6]; flt_tbl = &ipa3_ctx->flt_tbl[i][IPA_IP_v6]; INIT_LIST_HEAD(&flt_tbl->head_flt_rule_list); INIT_LIST_HEAD(&flt_tbl->head_flt_rule_list); Loading @@ -4170,7 +4179,7 @@ static int ipa3_post_init(const struct ipa3_plat_drv_res *resource_p, !ipa3_ctx->ip6_flt_tbl_hash_lcl; !ipa3_ctx->ip6_flt_tbl_hash_lcl; flt_tbl->in_sys[IPA_RULE_NON_HASHABLE] = flt_tbl->in_sys[IPA_RULE_NON_HASHABLE] = !ipa3_ctx->ip6_flt_tbl_nhash_lcl; !ipa3_ctx->ip6_flt_tbl_nhash_lcl; idr_init(&flt_tbl->rule_ids); flt_tbl->rule_ids = &ipa3_ctx->flt_rule_ids[IPA_IP_v6]; } } if (!ipa3_ctx->apply_rg10_wa) { if (!ipa3_ctx->apply_rg10_wa) { Loading Loading @@ -4255,6 +4264,12 @@ static int ipa3_post_init(const struct ipa3_plat_drv_res *resource_p, else else IPADBG(":ntn init ok\n"); IPADBG(":ntn init ok\n"); result = ipa_hw_stats_init(); if (result) IPAERR("fail to init stats %d\n", result); else IPADBG(":stats init ok\n"); ipa3_register_panic_hdlr(); ipa3_register_panic_hdlr(); ipa3_ctx->q6_proxy_clk_vote_valid = true; ipa3_ctx->q6_proxy_clk_vote_valid = true; Loading Loading @@ -4815,12 +4830,16 @@ static int ipa3_pre_init(const struct ipa3_plat_drv_res *resource_p, hdr_proc_ctx_tbl.head_free_offset_list[i]); hdr_proc_ctx_tbl.head_free_offset_list[i]); } } INIT_LIST_HEAD(&ipa3_ctx->rt_tbl_set[IPA_IP_v4].head_rt_tbl_list); INIT_LIST_HEAD(&ipa3_ctx->rt_tbl_set[IPA_IP_v4].head_rt_tbl_list); idr_init(&ipa3_ctx->rt_tbl_set[IPA_IP_v4].rule_ids); INIT_LIST_HEAD(&ipa3_ctx->rt_tbl_set[IPA_IP_v6].head_rt_tbl_list); INIT_LIST_HEAD(&ipa3_ctx->rt_tbl_set[IPA_IP_v6].head_rt_tbl_list); idr_init(&ipa3_ctx->rt_tbl_set[IPA_IP_v6].rule_ids); rset = &ipa3_ctx->reap_rt_tbl_set[IPA_IP_v4]; rset = &ipa3_ctx->reap_rt_tbl_set[IPA_IP_v4]; INIT_LIST_HEAD(&rset->head_rt_tbl_list); INIT_LIST_HEAD(&rset->head_rt_tbl_list); idr_init(&rset->rule_ids); rset = &ipa3_ctx->reap_rt_tbl_set[IPA_IP_v6]; rset = &ipa3_ctx->reap_rt_tbl_set[IPA_IP_v6]; INIT_LIST_HEAD(&rset->head_rt_tbl_list); INIT_LIST_HEAD(&rset->head_rt_tbl_list); idr_init(&rset->rule_ids); INIT_LIST_HEAD(&ipa3_ctx->intf_list); INIT_LIST_HEAD(&ipa3_ctx->intf_list); INIT_LIST_HEAD(&ipa3_ctx->msg_list); INIT_LIST_HEAD(&ipa3_ctx->msg_list); Loading Loading @@ -4940,6 +4959,12 @@ static int ipa3_pre_init(const struct ipa3_plat_drv_res *resource_p, fail_device_create: fail_device_create: unregister_chrdev_region(ipa3_ctx->dev_num, 1); unregister_chrdev_region(ipa3_ctx->dev_num, 1); fail_alloc_chrdev_region: fail_alloc_chrdev_region: rset = &ipa3_ctx->reap_rt_tbl_set[IPA_IP_v6]; idr_destroy(&rset->rule_ids); rset = &ipa3_ctx->reap_rt_tbl_set[IPA_IP_v4]; idr_destroy(&rset->rule_ids); idr_destroy(&ipa3_ctx->rt_tbl_set[IPA_IP_v6].rule_ids); idr_destroy(&ipa3_ctx->rt_tbl_set[IPA_IP_v4].rule_ids); ipa3_free_dma_task_for_gsi(); ipa3_free_dma_task_for_gsi(); fail_dma_task: fail_dma_task: idr_destroy(&ipa3_ctx->ipa_idr); idr_destroy(&ipa3_ctx->ipa_idr); Loading drivers/platform/msm/ipa/ipa_v3/ipa_debugfs.c +2 −0 Original line number Original line Diff line number Diff line Loading @@ -2169,6 +2169,8 @@ void ipa3_debugfs_init(void) goto fail; goto fail; } } ipa_debugfs_init_stats(dent); return; return; fail: fail: Loading drivers/platform/msm/ipa/ipa_v3/ipa_flt.c +5 −5 Original line number Original line Diff line number Diff line Loading @@ -806,7 +806,7 @@ static int __ipa_create_flt_entry(struct ipa3_flt_entry **entry, if (rule->rule_id) { if (rule->rule_id) { id = rule->rule_id; id = rule->rule_id; } else { } else { id = ipa3_alloc_rule_id(&tbl->rule_ids); id = ipa3_alloc_rule_id(tbl->rule_ids); if (id < 0) { if (id < 0) { IPAERR("failed to allocate rule id\n"); IPAERR("failed to allocate rule id\n"); WARN_ON(1); WARN_ON(1); Loading Loading @@ -880,7 +880,7 @@ static int __ipa_add_flt_rule(struct ipa3_flt_tbl *tbl, enum ipa_ip_type ip, list_del(&entry->link); list_del(&entry->link); /* if rule id was allocated from idr, remove it */ /* if rule id was allocated from idr, remove it */ if (!(entry->rule_id & ipahal_get_rule_id_hi_bit())) if (!(entry->rule_id & ipahal_get_rule_id_hi_bit())) idr_remove(&entry->tbl->rule_ids, entry->rule_id); idr_remove(entry->tbl->rule_ids, entry->rule_id); kmem_cache_free(ipa3_ctx->flt_rule_cache, entry); kmem_cache_free(ipa3_ctx->flt_rule_cache, entry); error: error: Loading Loading @@ -927,7 +927,7 @@ static int __ipa_add_flt_rule_after(struct ipa3_flt_tbl *tbl, list_del(&entry->link); list_del(&entry->link); /* if rule id was allocated from idr, remove it */ /* if rule id was allocated from idr, remove it */ if (!(entry->rule_id & ipahal_get_rule_id_hi_bit())) if (!(entry->rule_id & ipahal_get_rule_id_hi_bit())) idr_remove(&entry->tbl->rule_ids, entry->rule_id); idr_remove(entry->tbl->rule_ids, entry->rule_id); kmem_cache_free(ipa3_ctx->flt_rule_cache, entry); kmem_cache_free(ipa3_ctx->flt_rule_cache, entry); error: error: Loading Loading @@ -961,7 +961,7 @@ static int __ipa_del_flt_rule(u32 rule_hdl) entry->cookie = 0; entry->cookie = 0; /* if rule id was allocated from idr, remove it */ /* if rule id was allocated from idr, remove it */ if (!(entry->rule_id & ipahal_get_rule_id_hi_bit())) if (!(entry->rule_id & ipahal_get_rule_id_hi_bit())) idr_remove(&entry->tbl->rule_ids, entry->rule_id); idr_remove(entry->tbl->rule_ids, entry->rule_id); kmem_cache_free(ipa3_ctx->flt_rule_cache, entry); kmem_cache_free(ipa3_ctx->flt_rule_cache, entry); Loading Loading @@ -1374,7 +1374,7 @@ int ipa3_reset_flt(enum ipa_ip_type ip) entry->rt_tbl->ref_cnt--; entry->rt_tbl->ref_cnt--; /* if rule id was allocated from idr, remove it */ /* if rule id was allocated from idr, remove it */ if (!(entry->rule_id & ipahal_get_rule_id_hi_bit())) if (!(entry->rule_id & ipahal_get_rule_id_hi_bit())) idr_remove(&entry->tbl->rule_ids, idr_remove(entry->tbl->rule_ids, entry->rule_id); entry->rule_id); entry->cookie = 0; entry->cookie = 0; id = entry->id; id = entry->id; Loading drivers/platform/msm/ipa/ipa_v3/ipa_hw_stats.c 0 → 100644 +1973 −0 File added.Preview size limit exceeded, changes collapsed. Show changes Loading
drivers/platform/msm/ipa/ipa_v3/Makefile +2 −1 Original line number Original line Diff line number Diff line Loading @@ -3,6 +3,7 @@ obj-$(CONFIG_IPA3) += ipahal/ obj-$(CONFIG_IPA3) += ipat.o obj-$(CONFIG_IPA3) += ipat.o ipat-y := ipa.o ipa_debugfs.o ipa_hdr.o ipa_flt.o ipa_rt.o ipa_dp.o ipa_client.o \ ipat-y := ipa.o ipa_debugfs.o ipa_hdr.o ipa_flt.o ipa_rt.o ipa_dp.o ipa_client.o \ ipa_utils.o ipa_nat.o ipa_intf.o teth_bridge.o ipa_interrupts.o \ ipa_utils.o ipa_nat.o ipa_intf.o teth_bridge.o ipa_interrupts.o \ ipa_uc.o ipa_uc_wdi.o ipa_dma.o ipa_uc_mhi.o ipa_mhi.o ipa_uc_ntn.o ipa_uc.o ipa_uc_wdi.o ipa_dma.o ipa_uc_mhi.o ipa_mhi.o ipa_uc_ntn.o \ ipa_hw_stats.o obj-$(CONFIG_RMNET_IPA3) += rmnet_ipa.o ipa_qmi_service_v01.o ipa_qmi_service.o rmnet_ipa_fd_ioctl.o obj-$(CONFIG_RMNET_IPA3) += rmnet_ipa.o ipa_qmi_service_v01.o ipa_qmi_service.o rmnet_ipa_fd_ioctl.o
drivers/platform/msm/ipa/ipa_v3/ipa.c +29 −4 Original line number Original line Diff line number Diff line Loading @@ -3947,14 +3947,17 @@ static void ipa3_destroy_flt_tbl_idrs(void) int i; int i; struct ipa3_flt_tbl *flt_tbl; struct ipa3_flt_tbl *flt_tbl; idr_destroy(&ipa3_ctx->flt_rule_ids[IPA_IP_v4]); idr_destroy(&ipa3_ctx->flt_rule_ids[IPA_IP_v6]); for (i = 0; i < ipa3_ctx->ipa_num_pipes; i++) { for (i = 0; i < ipa3_ctx->ipa_num_pipes; i++) { if (!ipa_is_ep_support_flt(i)) if (!ipa_is_ep_support_flt(i)) continue; continue; flt_tbl = &ipa3_ctx->flt_tbl[i][IPA_IP_v4]; flt_tbl = &ipa3_ctx->flt_tbl[i][IPA_IP_v4]; idr_destroy(&flt_tbl->rule_ids); flt_tbl->rule_ids = NULL; flt_tbl = &ipa3_ctx->flt_tbl[i][IPA_IP_v6]; flt_tbl = &ipa3_ctx->flt_tbl[i][IPA_IP_v6]; idr_destroy(&flt_tbl->rule_ids); flt_tbl->rule_ids = NULL; } } } } Loading Loading @@ -4129,6 +4132,7 @@ static int ipa3_post_init(const struct ipa3_plat_drv_res *resource_p, struct ipa3_uc_hdlrs uc_hdlrs = { 0 }; struct ipa3_uc_hdlrs uc_hdlrs = { 0 }; struct ipa3_flt_tbl *flt_tbl; struct ipa3_flt_tbl *flt_tbl; int i; int i; struct idr *idr; if (ipa3_ctx == NULL) { if (ipa3_ctx == NULL) { IPADBG("IPA driver haven't initialized\n"); IPADBG("IPA driver haven't initialized\n"); Loading @@ -4152,6 +4156,11 @@ static int ipa3_post_init(const struct ipa3_plat_drv_res *resource_p, /* Assign resource limitation to each group */ /* Assign resource limitation to each group */ ipa3_set_resorce_groups_min_max_limits(); ipa3_set_resorce_groups_min_max_limits(); idr = &(ipa3_ctx->flt_rule_ids[IPA_IP_v4]); idr_init(idr); idr = &(ipa3_ctx->flt_rule_ids[IPA_IP_v6]); idr_init(idr); for (i = 0; i < ipa3_ctx->ipa_num_pipes; i++) { for (i = 0; i < ipa3_ctx->ipa_num_pipes; i++) { if (!ipa_is_ep_support_flt(i)) if (!ipa_is_ep_support_flt(i)) continue; continue; Loading @@ -4162,7 +4171,7 @@ static int ipa3_post_init(const struct ipa3_plat_drv_res *resource_p, !ipa3_ctx->ip4_flt_tbl_hash_lcl; !ipa3_ctx->ip4_flt_tbl_hash_lcl; flt_tbl->in_sys[IPA_RULE_NON_HASHABLE] = flt_tbl->in_sys[IPA_RULE_NON_HASHABLE] = !ipa3_ctx->ip4_flt_tbl_nhash_lcl; !ipa3_ctx->ip4_flt_tbl_nhash_lcl; idr_init(&flt_tbl->rule_ids); flt_tbl->rule_ids = &ipa3_ctx->flt_rule_ids[IPA_IP_v4]; flt_tbl = &ipa3_ctx->flt_tbl[i][IPA_IP_v6]; flt_tbl = &ipa3_ctx->flt_tbl[i][IPA_IP_v6]; INIT_LIST_HEAD(&flt_tbl->head_flt_rule_list); INIT_LIST_HEAD(&flt_tbl->head_flt_rule_list); Loading @@ -4170,7 +4179,7 @@ static int ipa3_post_init(const struct ipa3_plat_drv_res *resource_p, !ipa3_ctx->ip6_flt_tbl_hash_lcl; !ipa3_ctx->ip6_flt_tbl_hash_lcl; flt_tbl->in_sys[IPA_RULE_NON_HASHABLE] = flt_tbl->in_sys[IPA_RULE_NON_HASHABLE] = !ipa3_ctx->ip6_flt_tbl_nhash_lcl; !ipa3_ctx->ip6_flt_tbl_nhash_lcl; idr_init(&flt_tbl->rule_ids); flt_tbl->rule_ids = &ipa3_ctx->flt_rule_ids[IPA_IP_v6]; } } if (!ipa3_ctx->apply_rg10_wa) { if (!ipa3_ctx->apply_rg10_wa) { Loading Loading @@ -4255,6 +4264,12 @@ static int ipa3_post_init(const struct ipa3_plat_drv_res *resource_p, else else IPADBG(":ntn init ok\n"); IPADBG(":ntn init ok\n"); result = ipa_hw_stats_init(); if (result) IPAERR("fail to init stats %d\n", result); else IPADBG(":stats init ok\n"); ipa3_register_panic_hdlr(); ipa3_register_panic_hdlr(); ipa3_ctx->q6_proxy_clk_vote_valid = true; ipa3_ctx->q6_proxy_clk_vote_valid = true; Loading Loading @@ -4815,12 +4830,16 @@ static int ipa3_pre_init(const struct ipa3_plat_drv_res *resource_p, hdr_proc_ctx_tbl.head_free_offset_list[i]); hdr_proc_ctx_tbl.head_free_offset_list[i]); } } INIT_LIST_HEAD(&ipa3_ctx->rt_tbl_set[IPA_IP_v4].head_rt_tbl_list); INIT_LIST_HEAD(&ipa3_ctx->rt_tbl_set[IPA_IP_v4].head_rt_tbl_list); idr_init(&ipa3_ctx->rt_tbl_set[IPA_IP_v4].rule_ids); INIT_LIST_HEAD(&ipa3_ctx->rt_tbl_set[IPA_IP_v6].head_rt_tbl_list); INIT_LIST_HEAD(&ipa3_ctx->rt_tbl_set[IPA_IP_v6].head_rt_tbl_list); idr_init(&ipa3_ctx->rt_tbl_set[IPA_IP_v6].rule_ids); rset = &ipa3_ctx->reap_rt_tbl_set[IPA_IP_v4]; rset = &ipa3_ctx->reap_rt_tbl_set[IPA_IP_v4]; INIT_LIST_HEAD(&rset->head_rt_tbl_list); INIT_LIST_HEAD(&rset->head_rt_tbl_list); idr_init(&rset->rule_ids); rset = &ipa3_ctx->reap_rt_tbl_set[IPA_IP_v6]; rset = &ipa3_ctx->reap_rt_tbl_set[IPA_IP_v6]; INIT_LIST_HEAD(&rset->head_rt_tbl_list); INIT_LIST_HEAD(&rset->head_rt_tbl_list); idr_init(&rset->rule_ids); INIT_LIST_HEAD(&ipa3_ctx->intf_list); INIT_LIST_HEAD(&ipa3_ctx->intf_list); INIT_LIST_HEAD(&ipa3_ctx->msg_list); INIT_LIST_HEAD(&ipa3_ctx->msg_list); Loading Loading @@ -4940,6 +4959,12 @@ static int ipa3_pre_init(const struct ipa3_plat_drv_res *resource_p, fail_device_create: fail_device_create: unregister_chrdev_region(ipa3_ctx->dev_num, 1); unregister_chrdev_region(ipa3_ctx->dev_num, 1); fail_alloc_chrdev_region: fail_alloc_chrdev_region: rset = &ipa3_ctx->reap_rt_tbl_set[IPA_IP_v6]; idr_destroy(&rset->rule_ids); rset = &ipa3_ctx->reap_rt_tbl_set[IPA_IP_v4]; idr_destroy(&rset->rule_ids); idr_destroy(&ipa3_ctx->rt_tbl_set[IPA_IP_v6].rule_ids); idr_destroy(&ipa3_ctx->rt_tbl_set[IPA_IP_v4].rule_ids); ipa3_free_dma_task_for_gsi(); ipa3_free_dma_task_for_gsi(); fail_dma_task: fail_dma_task: idr_destroy(&ipa3_ctx->ipa_idr); idr_destroy(&ipa3_ctx->ipa_idr); Loading
drivers/platform/msm/ipa/ipa_v3/ipa_debugfs.c +2 −0 Original line number Original line Diff line number Diff line Loading @@ -2169,6 +2169,8 @@ void ipa3_debugfs_init(void) goto fail; goto fail; } } ipa_debugfs_init_stats(dent); return; return; fail: fail: Loading
drivers/platform/msm/ipa/ipa_v3/ipa_flt.c +5 −5 Original line number Original line Diff line number Diff line Loading @@ -806,7 +806,7 @@ static int __ipa_create_flt_entry(struct ipa3_flt_entry **entry, if (rule->rule_id) { if (rule->rule_id) { id = rule->rule_id; id = rule->rule_id; } else { } else { id = ipa3_alloc_rule_id(&tbl->rule_ids); id = ipa3_alloc_rule_id(tbl->rule_ids); if (id < 0) { if (id < 0) { IPAERR("failed to allocate rule id\n"); IPAERR("failed to allocate rule id\n"); WARN_ON(1); WARN_ON(1); Loading Loading @@ -880,7 +880,7 @@ static int __ipa_add_flt_rule(struct ipa3_flt_tbl *tbl, enum ipa_ip_type ip, list_del(&entry->link); list_del(&entry->link); /* if rule id was allocated from idr, remove it */ /* if rule id was allocated from idr, remove it */ if (!(entry->rule_id & ipahal_get_rule_id_hi_bit())) if (!(entry->rule_id & ipahal_get_rule_id_hi_bit())) idr_remove(&entry->tbl->rule_ids, entry->rule_id); idr_remove(entry->tbl->rule_ids, entry->rule_id); kmem_cache_free(ipa3_ctx->flt_rule_cache, entry); kmem_cache_free(ipa3_ctx->flt_rule_cache, entry); error: error: Loading Loading @@ -927,7 +927,7 @@ static int __ipa_add_flt_rule_after(struct ipa3_flt_tbl *tbl, list_del(&entry->link); list_del(&entry->link); /* if rule id was allocated from idr, remove it */ /* if rule id was allocated from idr, remove it */ if (!(entry->rule_id & ipahal_get_rule_id_hi_bit())) if (!(entry->rule_id & ipahal_get_rule_id_hi_bit())) idr_remove(&entry->tbl->rule_ids, entry->rule_id); idr_remove(entry->tbl->rule_ids, entry->rule_id); kmem_cache_free(ipa3_ctx->flt_rule_cache, entry); kmem_cache_free(ipa3_ctx->flt_rule_cache, entry); error: error: Loading Loading @@ -961,7 +961,7 @@ static int __ipa_del_flt_rule(u32 rule_hdl) entry->cookie = 0; entry->cookie = 0; /* if rule id was allocated from idr, remove it */ /* if rule id was allocated from idr, remove it */ if (!(entry->rule_id & ipahal_get_rule_id_hi_bit())) if (!(entry->rule_id & ipahal_get_rule_id_hi_bit())) idr_remove(&entry->tbl->rule_ids, entry->rule_id); idr_remove(entry->tbl->rule_ids, entry->rule_id); kmem_cache_free(ipa3_ctx->flt_rule_cache, entry); kmem_cache_free(ipa3_ctx->flt_rule_cache, entry); Loading Loading @@ -1374,7 +1374,7 @@ int ipa3_reset_flt(enum ipa_ip_type ip) entry->rt_tbl->ref_cnt--; entry->rt_tbl->ref_cnt--; /* if rule id was allocated from idr, remove it */ /* if rule id was allocated from idr, remove it */ if (!(entry->rule_id & ipahal_get_rule_id_hi_bit())) if (!(entry->rule_id & ipahal_get_rule_id_hi_bit())) idr_remove(&entry->tbl->rule_ids, idr_remove(entry->tbl->rule_ids, entry->rule_id); entry->rule_id); entry->cookie = 0; entry->cookie = 0; id = entry->id; id = entry->id; Loading
drivers/platform/msm/ipa/ipa_v3/ipa_hw_stats.c 0 → 100644 +1973 −0 File added.Preview size limit exceeded, changes collapsed. Show changes