]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
dpaa2-eth: fix return codes used in ndo_setup_tc
authorJesper Dangaard Brouer <brouer@redhat.com>
Thu, 23 Apr 2020 14:57:50 +0000 (16:57 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 22 Jun 2020 07:32:32 +0000 (09:32 +0200)
[ Upstream commit b89c1e6bdc73f5775e118eb2ab778e75b262b30c ]

Drivers ndo_setup_tc call should return -EOPNOTSUPP, when it cannot
support the qdisc type. Other return values will result in failing the
qdisc setup.  This lead to qdisc noop getting assigned, which will
drop all TX packets on the interface.

Fixes: ab1e6de2bd49 ("dpaa2-eth: Add mqprio support")
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
Tested-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c

index d97c320a2dc0393b3a6b84bf43ae0d9bbf865db7..569e06d2bab21a08f8e6645545a01a1f29153ccf 100644 (file)
@@ -2018,7 +2018,7 @@ static int dpaa2_eth_setup_tc(struct net_device *net_dev,
        int i;
 
        if (type != TC_SETUP_QDISC_MQPRIO)
-               return -EINVAL;
+               return -EOPNOTSUPP;
 
        mqprio->hw = TC_MQPRIO_HW_OFFLOAD_TCS;
        num_queues = dpaa2_eth_queue_count(priv);
@@ -2030,7 +2030,7 @@ static int dpaa2_eth_setup_tc(struct net_device *net_dev,
        if (num_tc  > dpaa2_eth_tc_count(priv)) {
                netdev_err(net_dev, "Max %d traffic classes supported\n",
                           dpaa2_eth_tc_count(priv));
-               return -EINVAL;
+               return -EOPNOTSUPP;
        }
 
        if (!num_tc) {