mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-26 16:41:25 +00:00
Merge branch 'net_sched-Fix-two-tc_index-filter-init-issues'
Hangbin Liu says: ==================== net_sched: Fix two tc_index filter init issues These two patches fix two tc_index filter init issues. The first one fixes missing exts info in new filter, which will cause NULL pointer dereference when delete tcindex filter. The second one fixes missing res info when create new filter, which will make filter unbind failed. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
e8ae5e92be
1 changed files with 3 additions and 5 deletions
|
@ -447,11 +447,6 @@ tcindex_set_parms(struct net *net, struct tcf_proto *tp, unsigned long base,
|
|||
tcf_bind_filter(tp, &cr.res, base);
|
||||
}
|
||||
|
||||
if (old_r)
|
||||
tcf_exts_change(&r->exts, &e);
|
||||
else
|
||||
tcf_exts_change(&cr.exts, &e);
|
||||
|
||||
if (old_r && old_r != r) {
|
||||
err = tcindex_filter_result_init(old_r);
|
||||
if (err < 0) {
|
||||
|
@ -462,12 +457,15 @@ tcindex_set_parms(struct net *net, struct tcf_proto *tp, unsigned long base,
|
|||
|
||||
oldp = p;
|
||||
r->res = cr.res;
|
||||
tcf_exts_change(&r->exts, &e);
|
||||
|
||||
rcu_assign_pointer(tp->root, cp);
|
||||
|
||||
if (r == &new_filter_result) {
|
||||
struct tcindex_filter *nfp;
|
||||
struct tcindex_filter __rcu **fp;
|
||||
|
||||
f->result.res = r->res;
|
||||
tcf_exts_change(&f->result.exts, &r->exts);
|
||||
|
||||
fp = cp->h + (handle % cp->hash);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue