]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
bnxt_en: Re-factor bnxt_setup_tc().
authorMichael Chan <michael.chan@broadcom.com>
Sat, 3 Dec 2016 02:17:15 +0000 (21:17 -0500)
committerDhaval Giani <dhaval.giani@oracle.com>
Fri, 20 Jan 2017 18:08:35 +0000 (13:08 -0500)
Orabug: 24567991

Add a new function bnxt_setup_mq_tc() to handle MQPRIO.  This new function
will be called during ETS setup when we add DCBNL in the next patch.

Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit c5e3deb8a38453037b89e0b0485d3b031896e8eb)
Signed-off-by: Brian Maly <brian.maly@oracle.com>
Conflicts:
drivers/net/ethernet/broadcom/bnxt/bnxt.c

Signed-off-by: Dhaval Giani <dhaval.giani@oracle.com>
drivers/net/ethernet/broadcom/bnxt/bnxt.c
drivers/net/ethernet/broadcom/bnxt/bnxt.h

index 3398e4a0ab10d6164f55829cfe7a45d06118f145..cf40e50890912c0186df0749e0d6926fdd2566a4 100644 (file)
@@ -6360,7 +6360,7 @@ static int bnxt_change_mtu(struct net_device *dev, int new_mtu)
        return 0;
 }
 
-static int bnxt_setup_tc(struct net_device *dev, u8 tc)
+int bnxt_setup_mq_tc(struct net_device *dev, u8 tc)
 {
        struct bnxt *bp = netdev_priv(dev);
        bool sh = false;
@@ -6406,6 +6406,17 @@ static int bnxt_setup_tc(struct net_device *dev, u8 tc)
        return 0;
 }
 
+#ifdef HAVE_TC_TO_NETDEV
+static int bnxt_setup_tc(struct net_device *dev, u32 handle, __be16 proto,
+                        struct tc_to_netdev *ntc)
+{
+       if (ntc->type != TC_SETUP_MQPRIO)
+               return -EINVAL;
+
+       return bnxt_setup_mq_tc(dev, ntc->tc);
+}
+#endif
+
 #ifdef CONFIG_RFS_ACCEL
 #ifdef NEW_FLOW_KEYS
 static bool bnxt_fltr_match(struct bnxt_ntuple_filter *f1,
@@ -6700,7 +6711,13 @@ static const struct net_device_ops bnxt_netdev_ops = {
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_poll_controller    = bnxt_poll_controller,
 #endif
+#ifdef HAVE_SETUP_TC
+#ifdef HAVE_TC_TO_NETDEV
+       .ndo_setup_tc           = bnxt_set_tc,
+#else
        .ndo_setup_tc           = bnxt_setup_tc,
+#endif
+#endif
 #ifdef CONFIG_RFS_ACCEL
        .ndo_rx_flow_steer      = bnxt_rx_flow_steer,
 #endif
index 47be7894c67bcea3e1f1002fcfc88a1992d10b22..fcd07ee12ed4053c925845bcc0aec2a1177467d6 100644 (file)
@@ -1225,5 +1225,6 @@ int bnxt_hwrm_set_link_setting(struct bnxt *, bool, bool);
 int bnxt_hwrm_fw_set_time(struct bnxt *);
 int bnxt_open_nic(struct bnxt *, bool, bool);
 int bnxt_close_nic(struct bnxt *, bool, bool);
+int bnxt_setup_mq_tc(struct net_device *dev, u8 tc);
 int bnxt_get_max_rings(struct bnxt *, int *, int *, bool);
 #endif