Merge "IPANAT: fix IPANAT deletion issue"
diff --git a/ipanat/src/ipa_nat_drvi.c b/ipanat/src/ipa_nat_drvi.c
index 4d77a1f..d85a96d 100644
--- a/ipanat/src/ipa_nat_drvi.c
+++ b/ipanat/src/ipa_nat_drvi.c
@@ -1615,6 +1615,7 @@
uint16_t prev_entry = IPA_NAT_INVALID_NAT_ENTRY;
uint16_t next_entry = IPA_NAT_INVALID_NAT_ENTRY;
+ uint16_t indx_next_entry = IPA_NAT_INVALID_NAT_ENTRY;
uint16_t table_entry;
size = sizeof(struct ipa_ioc_nat_dma_cmd)+
@@ -1787,6 +1788,7 @@
cmd->dma[no_of_cmds].base_addr,
indx_tbl_entry);
cmd->dma[no_of_cmds].offset += IPA_NAT_INDEX_RULE_NEXT_FIELD_OFFSET;
+ indx_next_entry = next_entry;
}
/*
@@ -1880,7 +1882,11 @@
if (IPA_NAT_DEL_TYPE_HEAD == indx_rule_pos) {
/* Reset the next entry to IPA_NAT_DEL_TYPE_HEAD as we copied
the next entry to IPA_NAT_DEL_TYPE_HEAD */
- indx_tbl_ptr[next_entry].tbl_entry_nxt_indx = 0;
+
+ IPADBG("Resetting, index table entry(Proper): %d\n",
+ (cache_ptr->table_entries + indx_next_entry));
+
+ indx_tbl_ptr[indx_next_entry].tbl_entry_nxt_indx = 0;
/*
In case of IPA_NAT_DEL_TYPE_HEAD, update the sw specific parameters