Signed-off-by: Matthias Beyer <[email protected]>
---
drivers/staging/bcm/PHSModule.c | 32 ++++++++++++++++++++------------
1 file changed, 20 insertions(+), 12 deletions(-)
diff --git a/drivers/staging/bcm/PHSModule.c b/drivers/staging/bcm/PHSModule.c
index e3db972..d2aa9c9 100644
--- a/drivers/staging/bcm/PHSModule.c
+++ b/drivers/staging/bcm/PHSModule.c
@@ -889,6 +889,8 @@ static void free_phs_serviceflow_rules(struct bcm_phs_table
*psServiceFlowRulesT
{
int i, j;
struct bcm_mini_adapter *Adapter = GET_BCM_ADAPTER(gblpnetdev);
+ struct bcm_phs_classifier_entry *curr_act_rules_list;
+ struct bcm_phs_classifier_entry *curr_old_rules_list;
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, PHS_DISPATCH, DBG_LVL_ALL,
"=======>\n");
@@ -902,26 +904,32 @@ static void free_phs_serviceflow_rules(struct
bcm_phs_table *psServiceFlowRulesT
if (pstClassifierRulesTable) {
for (j = 0; j < MAX_PHSRULE_PER_SF; j++) {
- if
(pstClassifierRulesTable->stActivePhsRulesList[j].pstPhsRule) {
+ curr_act_rules_list =
+
&pstClassifierRulesTable->stActivePhsRulesList[j];
- if
(pstClassifierRulesTable->stActivePhsRulesList[j].pstPhsRule->u8RefCnt)
-
pstClassifierRulesTable->stActivePhsRulesList[j].pstPhsRule->u8RefCnt--;
+ curr_old_rules_list =
+
&pstClassifierRulesTable->stOldPhsRulesList[j];
- if (0 ==
pstClassifierRulesTable->stActivePhsRulesList[j].pstPhsRule->u8RefCnt)
-
kfree(pstClassifierRulesTable->stActivePhsRulesList[j].pstPhsRule);
+ if (curr_act_rules_list->pstPhsRule) {
-
pstClassifierRulesTable->stActivePhsRulesList[j].pstPhsRule = NULL;
+ if
(curr_act_rules_list->pstPhsRule->u8RefCnt)
+
curr_act_rules_list->pstPhsRule->u8RefCnt--;
+
+ if (0 ==
curr_act_rules_list->pstPhsRule->u8RefCnt)
+
kfree(curr_act_rules_list->pstPhsRule);
+
+ curr_act_rules_list->pstPhsRule
= NULL;
}
- if
(pstClassifierRulesTable->stOldPhsRulesList[j].pstPhsRule) {
+ if (curr_old_rules_list->pstPhsRule) {
- if
(pstClassifierRulesTable->stOldPhsRulesList[j].pstPhsRule->u8RefCnt)
-
pstClassifierRulesTable->stOldPhsRulesList[j].pstPhsRule->u8RefCnt--;
+ if
(curr_old_rules_list->pstPhsRule->u8RefCnt)
+
curr_old_rules_list->pstPhsRule->u8RefCnt--;
- if (0 ==
pstClassifierRulesTable->stOldPhsRulesList[j].pstPhsRule->u8RefCnt)
-
kfree(pstClassifierRulesTable->stOldPhsRulesList[j].pstPhsRule);
+ if (0 ==
curr_old_rules_list->pstPhsRule->u8RefCnt)
+
kfree(curr_old_rules_list->pstPhsRule);
-
pstClassifierRulesTable->stOldPhsRulesList[j].pstPhsRule = NULL;
+ curr_old_rules_list->pstPhsRule
= NULL;
}
}
kfree(pstClassifierRulesTable);
--
2.0.1
_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel