Loading drivers/platform/msm/ipa/ipa_v2/ipa_hdr.c +15 −7 Original line number Diff line number Diff line Loading @@ -581,6 +581,7 @@ static int __ipa_add_hdr_proc_ctx(struct ipa_hdr_proc_ctx_add *proc_ctx, return 0; bad_len: if (add_ref_hdr) hdr_entry->ref_cnt--; entry->cookie = 0; kmem_cache_free(ipa_ctx->hdr_proc_ctx_cache, entry); Loading Loading @@ -761,7 +762,7 @@ static int __ipa_del_hdr_proc_ctx(u32 proc_ctx_hdl, bool release_hdr) } if (release_hdr) __ipa_release_hdr(entry->hdr->id); __ipa_del_hdr(entry->hdr->id); /* move the offset entry to appropriate free list */ list_move(&entry->offset_entry->link, Loading Loading @@ -1089,12 +1090,19 @@ int ipa2_reset_hdr(void) &ipa_ctx->hdr_tbl.head_hdr_entry_list, link) { /* do not remove the default header */ if (!strcmp(entry->name, IPA_LAN_RX_HDR_NAME)) if (!strcmp(entry->name, IPA_LAN_RX_HDR_NAME)) { if (entry->is_hdr_proc_ctx) { mutex_unlock(&ipa_ctx->lock); WARN_ON(1); IPAERR("default header is proc ctx\n"); return -EFAULT; } continue; } if (ipa_id_find(entry->id) == NULL) { WARN_ON(1); mutex_unlock(&ipa_ctx->lock); WARN_ON(1); return -EFAULT; } if (entry->is_hdr_proc_ctx) { Loading Loading @@ -1147,8 +1155,8 @@ int ipa2_reset_hdr(void) link) { if (ipa_id_find(ctx_entry->id) == NULL) { WARN_ON(1); mutex_unlock(&ipa_ctx->lock); WARN_ON(1); return -EFAULT; } list_del(&ctx_entry->link); Loading Loading @@ -1311,8 +1319,8 @@ int ipa2_put_hdr(u32 hdr_hdl) goto bail; } if (entry == NULL || entry->cookie != IPA_COOKIE) { IPAERR("bad params\n"); if (entry->cookie != IPA_COOKIE) { IPAERR("invalid header entry\n"); result = -EINVAL; goto bail; } Loading drivers/platform/msm/ipa/ipa_v2/ipa_i.h +1 −1 Original line number Diff line number Diff line Loading @@ -242,7 +242,7 @@ struct ipa_rt_tbl { * @is_partial: flag indicating if header table entry is partial * @is_hdr_proc_ctx: false - hdr entry resides in hdr table, * true - hdr entry resides in DDR and pointed to by proc ctx * @phys_base: physical address of entry in SRAM when is_hdr_proc_ctx is true, * @phys_base: physical address of entry in DDR when is_hdr_proc_ctx is true, * else 0 * @proc_ctx: processing context header * @offset_entry: entry's offset Loading drivers/platform/msm/ipa/ipa_v2/ipa_rt.c +4 −0 Original line number Diff line number Diff line Loading @@ -1008,6 +1008,10 @@ static int __ipa_add_rt_rule(enum ipa_ip_type ip, const char *name, return 0; ipa_insert_failed: if (entry->hdr) entry->hdr->ref_cnt--; else if (entry->proc_ctx) entry->proc_ctx->ref_cnt--; list_del(&entry->link); kmem_cache_free(ipa_ctx->rt_rule_cache, entry); error: Loading drivers/platform/msm/ipa/ipa_v3/ipa_hdr.c +15 −7 Original line number Diff line number Diff line Loading @@ -418,6 +418,7 @@ static int __ipa_add_hdr_proc_ctx(struct ipa_hdr_proc_ctx_add *proc_ctx, return 0; bad_len: if (add_ref_hdr) hdr_entry->ref_cnt--; entry->cookie = 0; kmem_cache_free(ipa3_ctx->hdr_proc_ctx_cache, entry); Loading Loading @@ -589,7 +590,7 @@ static int __ipa3_del_hdr_proc_ctx(u32 proc_ctx_hdl, bool release_hdr) } if (release_hdr) __ipa3_release_hdr(entry->hdr->id); __ipa3_del_hdr(entry->hdr->id); /* move the offset entry to appropriate free list */ list_move(&entry->offset_entry->link, Loading Loading @@ -893,12 +894,19 @@ int ipa3_reset_hdr(void) &ipa3_ctx->hdr_tbl.head_hdr_entry_list, link) { /* do not remove the default header */ if (!strcmp(entry->name, IPA_LAN_RX_HDR_NAME)) if (!strcmp(entry->name, IPA_LAN_RX_HDR_NAME)) { if (entry->is_hdr_proc_ctx) { IPAERR("default header is proc ctx\n"); mutex_unlock(&ipa3_ctx->lock); WARN_ON(1); return -EFAULT; } continue; } if (ipa3_id_find(entry->id) == NULL) { WARN_ON(1); mutex_unlock(&ipa3_ctx->lock); WARN_ON(1); return -EFAULT; } if (entry->is_hdr_proc_ctx) { Loading Loading @@ -951,8 +959,8 @@ int ipa3_reset_hdr(void) link) { if (ipa3_id_find(ctx_entry->id) == NULL) { WARN_ON(1); mutex_unlock(&ipa3_ctx->lock); WARN_ON(1); return -EFAULT; } list_del(&ctx_entry->link); Loading Loading @@ -1115,8 +1123,8 @@ int ipa3_put_hdr(u32 hdr_hdl) goto bail; } if (entry == NULL || entry->cookie != IPA_COOKIE) { IPAERR("bad params\n"); if (entry->cookie != IPA_COOKIE) { IPAERR("invalid header entry\n"); result = -EINVAL; goto bail; } Loading drivers/platform/msm/ipa/ipa_v3/ipa_i.h +1 −1 Original line number Diff line number Diff line Loading @@ -271,7 +271,7 @@ struct ipa3_rt_tbl { * @is_partial: flag indicating if header table entry is partial * @is_hdr_proc_ctx: false - hdr entry resides in hdr table, * true - hdr entry resides in DDR and pointed to by proc ctx * @phys_base: physical address of entry in SRAM when is_hdr_proc_ctx is true, * @phys_base: physical address of entry in DDR when is_hdr_proc_ctx is true, * else 0 * @proc_ctx: processing context header * @offset_entry: entry's offset Loading Loading
drivers/platform/msm/ipa/ipa_v2/ipa_hdr.c +15 −7 Original line number Diff line number Diff line Loading @@ -581,6 +581,7 @@ static int __ipa_add_hdr_proc_ctx(struct ipa_hdr_proc_ctx_add *proc_ctx, return 0; bad_len: if (add_ref_hdr) hdr_entry->ref_cnt--; entry->cookie = 0; kmem_cache_free(ipa_ctx->hdr_proc_ctx_cache, entry); Loading Loading @@ -761,7 +762,7 @@ static int __ipa_del_hdr_proc_ctx(u32 proc_ctx_hdl, bool release_hdr) } if (release_hdr) __ipa_release_hdr(entry->hdr->id); __ipa_del_hdr(entry->hdr->id); /* move the offset entry to appropriate free list */ list_move(&entry->offset_entry->link, Loading Loading @@ -1089,12 +1090,19 @@ int ipa2_reset_hdr(void) &ipa_ctx->hdr_tbl.head_hdr_entry_list, link) { /* do not remove the default header */ if (!strcmp(entry->name, IPA_LAN_RX_HDR_NAME)) if (!strcmp(entry->name, IPA_LAN_RX_HDR_NAME)) { if (entry->is_hdr_proc_ctx) { mutex_unlock(&ipa_ctx->lock); WARN_ON(1); IPAERR("default header is proc ctx\n"); return -EFAULT; } continue; } if (ipa_id_find(entry->id) == NULL) { WARN_ON(1); mutex_unlock(&ipa_ctx->lock); WARN_ON(1); return -EFAULT; } if (entry->is_hdr_proc_ctx) { Loading Loading @@ -1147,8 +1155,8 @@ int ipa2_reset_hdr(void) link) { if (ipa_id_find(ctx_entry->id) == NULL) { WARN_ON(1); mutex_unlock(&ipa_ctx->lock); WARN_ON(1); return -EFAULT; } list_del(&ctx_entry->link); Loading Loading @@ -1311,8 +1319,8 @@ int ipa2_put_hdr(u32 hdr_hdl) goto bail; } if (entry == NULL || entry->cookie != IPA_COOKIE) { IPAERR("bad params\n"); if (entry->cookie != IPA_COOKIE) { IPAERR("invalid header entry\n"); result = -EINVAL; goto bail; } Loading
drivers/platform/msm/ipa/ipa_v2/ipa_i.h +1 −1 Original line number Diff line number Diff line Loading @@ -242,7 +242,7 @@ struct ipa_rt_tbl { * @is_partial: flag indicating if header table entry is partial * @is_hdr_proc_ctx: false - hdr entry resides in hdr table, * true - hdr entry resides in DDR and pointed to by proc ctx * @phys_base: physical address of entry in SRAM when is_hdr_proc_ctx is true, * @phys_base: physical address of entry in DDR when is_hdr_proc_ctx is true, * else 0 * @proc_ctx: processing context header * @offset_entry: entry's offset Loading
drivers/platform/msm/ipa/ipa_v2/ipa_rt.c +4 −0 Original line number Diff line number Diff line Loading @@ -1008,6 +1008,10 @@ static int __ipa_add_rt_rule(enum ipa_ip_type ip, const char *name, return 0; ipa_insert_failed: if (entry->hdr) entry->hdr->ref_cnt--; else if (entry->proc_ctx) entry->proc_ctx->ref_cnt--; list_del(&entry->link); kmem_cache_free(ipa_ctx->rt_rule_cache, entry); error: Loading
drivers/platform/msm/ipa/ipa_v3/ipa_hdr.c +15 −7 Original line number Diff line number Diff line Loading @@ -418,6 +418,7 @@ static int __ipa_add_hdr_proc_ctx(struct ipa_hdr_proc_ctx_add *proc_ctx, return 0; bad_len: if (add_ref_hdr) hdr_entry->ref_cnt--; entry->cookie = 0; kmem_cache_free(ipa3_ctx->hdr_proc_ctx_cache, entry); Loading Loading @@ -589,7 +590,7 @@ static int __ipa3_del_hdr_proc_ctx(u32 proc_ctx_hdl, bool release_hdr) } if (release_hdr) __ipa3_release_hdr(entry->hdr->id); __ipa3_del_hdr(entry->hdr->id); /* move the offset entry to appropriate free list */ list_move(&entry->offset_entry->link, Loading Loading @@ -893,12 +894,19 @@ int ipa3_reset_hdr(void) &ipa3_ctx->hdr_tbl.head_hdr_entry_list, link) { /* do not remove the default header */ if (!strcmp(entry->name, IPA_LAN_RX_HDR_NAME)) if (!strcmp(entry->name, IPA_LAN_RX_HDR_NAME)) { if (entry->is_hdr_proc_ctx) { IPAERR("default header is proc ctx\n"); mutex_unlock(&ipa3_ctx->lock); WARN_ON(1); return -EFAULT; } continue; } if (ipa3_id_find(entry->id) == NULL) { WARN_ON(1); mutex_unlock(&ipa3_ctx->lock); WARN_ON(1); return -EFAULT; } if (entry->is_hdr_proc_ctx) { Loading Loading @@ -951,8 +959,8 @@ int ipa3_reset_hdr(void) link) { if (ipa3_id_find(ctx_entry->id) == NULL) { WARN_ON(1); mutex_unlock(&ipa3_ctx->lock); WARN_ON(1); return -EFAULT; } list_del(&ctx_entry->link); Loading Loading @@ -1115,8 +1123,8 @@ int ipa3_put_hdr(u32 hdr_hdl) goto bail; } if (entry == NULL || entry->cookie != IPA_COOKIE) { IPAERR("bad params\n"); if (entry->cookie != IPA_COOKIE) { IPAERR("invalid header entry\n"); result = -EINVAL; goto bail; } Loading
drivers/platform/msm/ipa/ipa_v3/ipa_i.h +1 −1 Original line number Diff line number Diff line Loading @@ -271,7 +271,7 @@ struct ipa3_rt_tbl { * @is_partial: flag indicating if header table entry is partial * @is_hdr_proc_ctx: false - hdr entry resides in hdr table, * true - hdr entry resides in DDR and pointed to by proc ctx * @phys_base: physical address of entry in SRAM when is_hdr_proc_ctx is true, * @phys_base: physical address of entry in DDR when is_hdr_proc_ctx is true, * else 0 * @proc_ctx: processing context header * @offset_entry: entry's offset Loading