net: sched: make egress_dev flag part of flower offload struct
authorJiri Pirko <jiri@mellanox.com>
Mon, 7 Aug 2017 08:15:19 +0000 (10:15 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 7 Aug 2017 16:42:35 +0000 (09:42 -0700)
Since this is specific to flower now, make it part of the flower offload
struct.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
include/linux/netdevice.h
include/net/pkt_cls.h
net/sched/cls_flower.c

index d44049ed5371e40a083493a1f5139a0a2a393edb..0e6bab182071d5e1732a067084b190371dfb501d 100644 (file)
@@ -661,7 +661,7 @@ static int mlx5e_rep_ndo_setup_tc(struct net_device *dev,
        if (TC_H_MAJ(handle) != TC_H_MAJ(TC_H_INGRESS))
                return -EOPNOTSUPP;
 
-       if (tc->egress_dev) {
+       if (type == TC_SETUP_CLSFLOWER && tc->cls_flower->egress_dev) {
                struct mlx5_eswitch *esw = priv->mdev->priv.eswitch;
                struct net_device *uplink_dev = mlx5_eswitch_get_uplink_netdev(esw);
 
index f8051a36f900b1d112c0d903c7f5c24db5936011..bd49dbaee84ea9354385ae3057ccc3b0c2f709bc 100644 (file)
@@ -792,7 +792,6 @@ struct tc_to_netdev {
                struct tc_cls_bpf_offload *cls_bpf;
                struct tc_mqprio_qopt *mqprio;
        };
-       bool egress_dev;
 };
 
 /* These structures hold the attributes of xdp state that are being passed
index e0c54f1114677cf68f219f71f4c5eedf25a838ec..8213acdfdf5ab19f0acd2171de82382497800f6b 100644 (file)
@@ -504,6 +504,7 @@ struct tc_cls_flower_offload {
        struct fl_flow_key *mask;
        struct fl_flow_key *key;
        struct tcf_exts *exts;
+       bool egress_dev;
 };
 
 enum tc_matchall_command {
index ddeed17d20247b2456cdbc03ef94835b6109de7c..52deeed2b7f54c6dfa0e3ac4cb258dc2a345981b 100644 (file)
@@ -259,7 +259,7 @@ static int fl_hw_replace_filter(struct tcf_proto *tp,
                        return tc_skip_sw(f->flags) ? -EINVAL : 0;
                }
                dev = f->hw_dev;
-               tc->egress_dev = true;
+               offload.egress_dev = true;
        } else {
                f->hw_dev = dev;
        }