aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/amd
diff options
context:
space:
mode:
authorJohn Fastabend <john.fastabend@gmail.com>2016-02-17 00:16:43 -0500
committerDavid S. Miller <davem@davemloft.net>2016-02-17 09:47:35 -0500
commit16e5cc647173a97e33b3e3ba81f73eb455561794 (patch)
tree038fd8d297fe13691d252d52e9d811ba2510d4cc /drivers/net/ethernet/amd
parente4c6734eaab90695db0ea8456307790cb0c1ccb5 (diff)
net: rework setup_tc ndo op to consume general tc operand
This patch updates setup_tc so we can pass additional parameters into the ndo op in a generic way. To do this we provide structured union and type flag. This lets each classifier and qdisc provide its own set of attributes without having to add new ndo ops or grow the signature of the callback. Signed-off-by: John Fastabend <john.r.fastabend@intel.com> Acked-by: Jiri Pirko <jiri@mellanox.com> Acked-by: Jamal Hadi Salim <jhs@mojatatu.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/amd')
-rw-r--r--drivers/net/ethernet/amd/xgbe/xgbe-drv.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c
index 9955cae3cabc..cfd3f7efda1c 100644
--- a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c
+++ b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c
@@ -1626,15 +1626,18 @@ static void xgbe_poll_controller(struct net_device *netdev)
1626} 1626}
1627#endif /* End CONFIG_NET_POLL_CONTROLLER */ 1627#endif /* End CONFIG_NET_POLL_CONTROLLER */
1628 1628
1629static int xgbe_setup_tc(struct net_device *netdev, u32 handle, u8 tc) 1629static int xgbe_setup_tc(struct net_device *netdev, u32 handle, __be16 proto,
1630 struct tc_to_netdev *tc_to_netdev)
1630{ 1631{
1631 struct xgbe_prv_data *pdata = netdev_priv(netdev); 1632 struct xgbe_prv_data *pdata = netdev_priv(netdev);
1632 unsigned int offset, queue; 1633 unsigned int offset, queue;
1633 u8 i; 1634 u8 i, tc;
1634 1635
1635 if (handle != TC_H_ROOT) 1636 if (handle != TC_H_ROOT || tc_to_netdev->type != TC_SETUP_MQPRIO)
1636 return -EINVAL; 1637 return -EINVAL;
1637 1638
1639 tc = tc_to_netdev->tc;
1640
1638 if (tc && (tc != pdata->hw_feat.tc_cnt)) 1641 if (tc && (tc != pdata->hw_feat.tc_cnt))
1639 return -EINVAL; 1642 return -EINVAL;
1640 1643