net: rework setup_tc ndo op to consume general tc operand
[linux-2.6-block.git] / drivers / net / ethernet / intel / fm10k / fm10k_netdev.c
index 662569d5b7c01a0af679fcecb147270a9c8f0c7c..dc1a82148ff01d27dba588221ae777c1c7c8ca4f 100644 (file)
@@ -1204,6 +1204,15 @@ err_queueing_scheme:
        return err;
 }
 
+static int __fm10k_setup_tc(struct net_device *dev, u32 handle, __be16 proto,
+                           struct tc_to_netdev *tc)
+{
+       if (handle != TC_H_ROOT || tc->type != TC_SETUP_MQPRIO)
+               return -EINVAL;
+
+       return fm10k_setup_tc(dev, tc->tc);
+}
+
 static int fm10k_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
 {
        switch (cmd) {
@@ -1386,7 +1395,7 @@ static const struct net_device_ops fm10k_netdev_ops = {
        .ndo_vlan_rx_kill_vid   = fm10k_vlan_rx_kill_vid,
        .ndo_set_rx_mode        = fm10k_set_rx_mode,
        .ndo_get_stats64        = fm10k_get_stats64,
-       .ndo_setup_tc           = fm10k_setup_tc,
+       .ndo_setup_tc           = __fm10k_setup_tc,
        .ndo_set_vf_mac         = fm10k_ndo_set_vf_mac,
        .ndo_set_vf_vlan        = fm10k_ndo_set_vf_vlan,
        .ndo_set_vf_rate        = fm10k_ndo_set_vf_bw,