aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/sched/cls_flower.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c
index 850d98294bf6..9d0c99d2e9fb 100644
--- a/net/sched/cls_flower.c
+++ b/net/sched/cls_flower.c
@@ -273,6 +273,8 @@ static int fl_hw_replace_filter(struct tcf_proto *tp,
273 273
274 err = dev->netdev_ops->ndo_setup_tc(dev, tp->q->handle, tp->protocol, 274 err = dev->netdev_ops->ndo_setup_tc(dev, tp->q->handle, tp->protocol,
275 tc); 275 tc);
276 if (!err)
277 f->flags |= TCA_CLS_FLAGS_IN_HW;
276 278
277 if (tc_skip_sw(f->flags)) 279 if (tc_skip_sw(f->flags))
278 return err; 280 return err;
@@ -912,6 +914,9 @@ static int fl_change(struct net *net, struct sk_buff *in_skb,
912 goto errout; 914 goto errout;
913 } 915 }
914 916
917 if (!tc_in_hw(fnew->flags))
918 fnew->flags |= TCA_CLS_FLAGS_NOT_IN_HW;
919
915 if (fold) { 920 if (fold) {
916 if (!tc_skip_sw(fold->flags)) 921 if (!tc_skip_sw(fold->flags))
917 rhashtable_remove_fast(&head->ht, &fold->ht_node, 922 rhashtable_remove_fast(&head->ht, &fold->ht_node,