From 3fa607227c7688c5072de24aabfed63e167422dc Mon Sep 17 00:00:00 2001 From: Michael Adisumarta Date: Thu, 3 Sep 2020 19:37:15 -0700 Subject: [PATCH] msm: ipa: adding checks if the rt_rule is not freed Adding checks if the rt_rule is not freed before committing. Change-Id: I4a2c86c24587a6a3ea7318bac438a9f27784f2f7 Signed-off-by: Michael Adisumarta --- drivers/platform/msm/ipa/ipa_v3/ipa_flt.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_flt.c b/drivers/platform/msm/ipa/ipa_v3/ipa_flt.c index 0391380371a7..a5794e996d0d 100644 --- a/drivers/platform/msm/ipa/ipa_v3/ipa_flt.c +++ b/drivers/platform/msm/ipa/ipa_v3/ipa_flt.c @@ -64,9 +64,14 @@ static int ipa3_generate_flt_hw_rule(enum ipa_ip_type ip, } gen_params.ipt = ip; - if (entry->rt_tbl && (!ipa3_check_idr_if_freed(entry->rt_tbl))) - gen_params.rt_tbl_idx = entry->rt_tbl->idx; - else + if (entry->rt_tbl) { + if (ipa3_check_idr_if_freed(entry->rt_tbl)) { + IPAERR_RL("Routing table already freed\n"); + return -EPERM; + } else { + gen_params.rt_tbl_idx = entry->rt_tbl->idx; + } + } else gen_params.rt_tbl_idx = entry->rule.rt_tbl_idx; gen_params.priority = entry->prio;