diff options
Diffstat (limited to 'net/sched/cls_u32.c')
-rw-r--r-- | net/sched/cls_u32.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/net/sched/cls_u32.c b/net/sched/cls_u32.c index b2c3406a2cf2..fe246e03fcd9 100644 --- a/net/sched/cls_u32.c +++ b/net/sched/cls_u32.c | |||
@@ -1315,12 +1315,17 @@ static int u32_reoffload(struct tcf_proto *tp, bool add, tc_setup_cb_t *cb, | |||
1315 | return 0; | 1315 | return 0; |
1316 | } | 1316 | } |
1317 | 1317 | ||
1318 | static void u32_bind_class(void *fh, u32 classid, unsigned long cl) | 1318 | static void u32_bind_class(void *fh, u32 classid, unsigned long cl, void *q, |
1319 | unsigned long base) | ||
1319 | { | 1320 | { |
1320 | struct tc_u_knode *n = fh; | 1321 | struct tc_u_knode *n = fh; |
1321 | 1322 | ||
1322 | if (n && n->res.classid == classid) | 1323 | if (n && n->res.classid == classid) { |
1323 | n->res.class = cl; | 1324 | if (cl) |
1325 | __tcf_bind_filter(q, &n->res, base); | ||
1326 | else | ||
1327 | __tcf_unbind_filter(q, &n->res); | ||
1328 | } | ||
1324 | } | 1329 | } |
1325 | 1330 | ||
1326 | static int u32_dump(struct net *net, struct tcf_proto *tp, void *fh, | 1331 | static int u32_dump(struct net *net, struct tcf_proto *tp, void *fh, |