projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
net_sched: act: Dont increment refcnt on replace
[firefly-linux-kernel-4.4.55.git]
/
net
/
sched
/
act_police.c
diff --git
a/net/sched/act_police.c
b/net/sched/act_police.c
index 272d8e924cf6b2467e2772898aca2d7895131545..ef246d87e68bbdf628bc00eebb05e9cb88a3cb87 100644
(file)
--- a/
net/sched/act_police.c
+++ b/
net/sched/act_police.c
@@
-177,10
+177,12
@@
static int tcf_act_police_locate(struct net *net, struct nlattr *nla,
if (bind) {
police->tcf_bindcnt += 1;
police->tcf_refcnt += 1;
if (bind) {
police->tcf_bindcnt += 1;
police->tcf_refcnt += 1;
+ return 0;
}
if (ovr)
goto override;
}
if (ovr)
goto override;
- return ret;
+ /* not replacing */
+ return -EEXIST;
}
}
}
}
@@
-407,7
+409,6
@@
static struct tc_action_ops act_police_ops = {
.act = tcf_act_police,
.dump = tcf_act_police_dump,
.cleanup = tcf_act_police_cleanup,
.act = tcf_act_police,
.dump = tcf_act_police_dump,
.cleanup = tcf_act_police_cleanup,
- .lookup = tcf_hash_search,
.init = tcf_act_police_locate,
.walk = tcf_act_police_walker
};
.init = tcf_act_police_locate,
.walk = tcf_act_police_walker
};