]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
net: stmmac: selftests: Switch to dev_direct_xmit()
authorJose Abreu <Jose.Abreu@synopsys.com>
Mon, 13 Jan 2020 16:24:15 +0000 (17:24 +0100)
committerJakub Kicinski <kuba@kernel.org>
Tue, 14 Jan 2020 02:31:48 +0000 (18:31 -0800)
In the upcoming commit for TBS selftest we will need to send a packet on
a specific Queue. As stmmac fallsback to netdev_pick_tx() on the select
Queue callback, we need to switch all selftests logic to
dev_direct_xmit() so that we can send the given SKB on a specific Queue.

Signed-off-by: Jose Abreu <Jose.Abreu@synopsys.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c

index 13227909287c03010189e00e7878029e08010d55..d50ae59fe3d822d782d8f197ab26ad01de8b5f0f 100644 (file)
@@ -339,8 +339,7 @@ static int __stmmac_test_loopback(struct stmmac_priv *priv,
                goto cleanup;
        }
 
-       skb_set_queue_mapping(skb, attr->queue_mapping);
-       ret = dev_queue_xmit(skb);
+       ret = dev_direct_xmit(skb, attr->queue_mapping);
        if (ret)
                goto cleanup;
 
@@ -926,8 +925,7 @@ static int __stmmac_test_vlanfilt(struct stmmac_priv *priv)
                        goto vlan_del;
                }
 
-               skb_set_queue_mapping(skb, 0);
-               ret = dev_queue_xmit(skb);
+               ret = dev_direct_xmit(skb, 0);
                if (ret)
                        goto vlan_del;
 
@@ -1018,8 +1016,7 @@ static int __stmmac_test_dvlanfilt(struct stmmac_priv *priv)
                        goto vlan_del;
                }
 
-               skb_set_queue_mapping(skb, 0);
-               ret = dev_queue_xmit(skb);
+               ret = dev_direct_xmit(skb, 0);
                if (ret)
                        goto vlan_del;
 
@@ -1286,8 +1283,7 @@ static int stmmac_test_vlanoff_common(struct stmmac_priv *priv, bool svlan)
        __vlan_hwaccel_put_tag(skb, htons(proto), tpriv->vlan_id);
        skb->protocol = htons(proto);
 
-       skb_set_queue_mapping(skb, 0);
-       ret = dev_queue_xmit(skb);
+       ret = dev_direct_xmit(skb, 0);
        if (ret)
                goto vlan_del;
 
@@ -1639,8 +1635,7 @@ static int stmmac_test_arpoffload(struct stmmac_priv *priv)
        if (ret)
                goto cleanup;
 
-       skb_set_queue_mapping(skb, 0);
-       ret = dev_queue_xmit(skb);
+       ret = dev_direct_xmit(skb, 0);
        if (ret)
                goto cleanup_promisc;
 
@@ -1869,7 +1864,6 @@ void stmmac_selftest_run(struct net_device *dev,
 {
        struct stmmac_priv *priv = netdev_priv(dev);
        int count = stmmac_selftest_get_count(priv);
-       int carrier = netif_carrier_ok(dev);
        int i, ret;
 
        memset(buf, 0, sizeof(*buf) * count);
@@ -1879,15 +1873,12 @@ void stmmac_selftest_run(struct net_device *dev,
                netdev_err(priv->dev, "Only offline tests are supported\n");
                etest->flags |= ETH_TEST_FL_FAILED;
                return;
-       } else if (!carrier) {
+       } else if (!netif_carrier_ok(dev)) {
                netdev_err(priv->dev, "You need valid Link to execute tests\n");
                etest->flags |= ETH_TEST_FL_FAILED;
                return;
        }
 
-       /* We don't want extra traffic */
-       netif_carrier_off(dev);
-
        /* Wait for queues drain */
        msleep(200);
 
@@ -1942,10 +1933,6 @@ void stmmac_selftest_run(struct net_device *dev,
                        break;
                }
        }
-
-       /* Restart everything */
-       if (carrier)
-               netif_carrier_on(dev);
 }
 
 void stmmac_selftest_get_strings(struct stmmac_priv *priv, u8 *data)