From: Jose Abreu <[email protected]>

Add two new tests for VLAN Perfect Filtering. While at it, increase a
little bit the tests strings lenght so that we can have more descriptive
test names.

Signed-off-by: Jose Abreu <[email protected]>

---
Cc: Giuseppe Cavallaro <[email protected]>
Cc: Alexandre Torgue <[email protected]>
Cc: Jose Abreu <[email protected]>
Cc: "David S. Miller" <[email protected]>
Cc: Maxime Coquelin <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
---
 .../net/ethernet/stmicro/stmmac/stmmac_selftests.c | 114 ++++++++++++++-------
 1 file changed, 77 insertions(+), 37 deletions(-)

diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c 
b/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c
index e4ac3c401432..0b5db52149bc 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c
@@ -823,16 +823,13 @@ static int stmmac_test_vlan_validate(struct sk_buff *skb,
        return 0;
 }
 
-static int stmmac_test_vlanfilt(struct stmmac_priv *priv)
+static int __stmmac_test_vlanfilt(struct stmmac_priv *priv)
 {
        struct stmmac_packet_attrs attr = { };
        struct stmmac_test_priv *tpriv;
        struct sk_buff *skb = NULL;
        int ret = 0, i;
 
-       if (!priv->dma_cap.vlhash)
-               return -EOPNOTSUPP;
-
        tpriv = kzalloc(sizeof(*tpriv), GFP_KERNEL);
        if (!tpriv)
                return -ENOMEM;
@@ -898,16 +895,32 @@ static int stmmac_test_vlanfilt(struct stmmac_priv *priv)
        return ret;
 }
 
-static int stmmac_test_dvlanfilt(struct stmmac_priv *priv)
+static int stmmac_test_vlanfilt(struct stmmac_priv *priv)
+{
+       if (!priv->dma_cap.vlhash)
+               return -EOPNOTSUPP;
+
+       return __stmmac_test_vlanfilt(priv);
+}
+
+static int stmmac_test_vlanfilt_perfect(struct stmmac_priv *priv)
+{
+       int ret, prev_cap = priv->dma_cap.vlhash;
+
+       priv->dma_cap.vlhash = 0;
+       ret = __stmmac_test_vlanfilt(priv);
+       priv->dma_cap.vlhash = prev_cap;
+
+       return ret;
+}
+
+static int __stmmac_test_dvlanfilt(struct stmmac_priv *priv)
 {
        struct stmmac_packet_attrs attr = { };
        struct stmmac_test_priv *tpriv;
        struct sk_buff *skb = NULL;
        int ret = 0, i;
 
-       if (!priv->dma_cap.vlhash)
-               return -EOPNOTSUPP;
-
        tpriv = kzalloc(sizeof(*tpriv), GFP_KERNEL);
        if (!tpriv)
                return -ENOMEM;
@@ -974,6 +987,25 @@ static int stmmac_test_dvlanfilt(struct stmmac_priv *priv)
        return ret;
 }
 
+static int stmmac_test_dvlanfilt(struct stmmac_priv *priv)
+{
+       if (!priv->dma_cap.vlhash)
+               return -EOPNOTSUPP;
+
+       return __stmmac_test_dvlanfilt(priv);
+}
+
+static int stmmac_test_dvlanfilt_perfect(struct stmmac_priv *priv)
+{
+       int ret, prev_cap = priv->dma_cap.vlhash;
+
+       priv->dma_cap.vlhash = 0;
+       ret = __stmmac_test_dvlanfilt(priv);
+       priv->dma_cap.vlhash = prev_cap;
+
+       return ret;
+}
+
 #ifdef CONFIG_NET_CLS_ACT
 static int stmmac_test_rxp(struct stmmac_priv *priv)
 {
@@ -1648,119 +1680,127 @@ static const struct stmmac_test {
        int (*fn)(struct stmmac_priv *priv);
 } stmmac_selftests[] = {
        {
-               .name = "MAC Loopback         ",
+               .name = "MAC Loopback               ",
                .lb = STMMAC_LOOPBACK_MAC,
                .fn = stmmac_test_mac_loopback,
        }, {
-               .name = "PHY Loopback         ",
+               .name = "PHY Loopback               ",
                .lb = STMMAC_LOOPBACK_NONE, /* Test will handle it */
                .fn = stmmac_test_phy_loopback,
        }, {
-               .name = "MMC Counters         ",
+               .name = "MMC Counters               ",
                .lb = STMMAC_LOOPBACK_PHY,
                .fn = stmmac_test_mmc,
        }, {
-               .name = "EEE                  ",
+               .name = "EEE                        ",
                .lb = STMMAC_LOOPBACK_PHY,
                .fn = stmmac_test_eee,
        }, {
-               .name = "Hash Filter MC       ",
+               .name = "Hash Filter MC             ",
                .lb = STMMAC_LOOPBACK_PHY,
                .fn = stmmac_test_hfilt,
        }, {
-               .name = "Perfect Filter UC    ",
+               .name = "Perfect Filter UC          ",
                .lb = STMMAC_LOOPBACK_PHY,
                .fn = stmmac_test_pfilt,
        }, {
-               .name = "MC Filter            ",
+               .name = "MC Filter                  ",
                .lb = STMMAC_LOOPBACK_PHY,
                .fn = stmmac_test_mcfilt,
        }, {
-               .name = "UC Filter            ",
+               .name = "UC Filter                  ",
                .lb = STMMAC_LOOPBACK_PHY,
                .fn = stmmac_test_ucfilt,
        }, {
-               .name = "Flow Control         ",
+               .name = "Flow Control               ",
                .lb = STMMAC_LOOPBACK_PHY,
                .fn = stmmac_test_flowctrl,
        }, {
-               .name = "RSS                  ",
+               .name = "RSS                        ",
                .lb = STMMAC_LOOPBACK_PHY,
                .fn = stmmac_test_rss,
        }, {
-               .name = "VLAN Filtering       ",
+               .name = "VLAN Filtering             ",
                .lb = STMMAC_LOOPBACK_PHY,
                .fn = stmmac_test_vlanfilt,
        }, {
-               .name = "Double VLAN Filtering",
+               .name = "VLAN Filtering (perf)      ",
+               .lb = STMMAC_LOOPBACK_PHY,
+               .fn = stmmac_test_vlanfilt_perfect,
+       }, {
+               .name = "Double VLAN Filter         ",
                .lb = STMMAC_LOOPBACK_PHY,
                .fn = stmmac_test_dvlanfilt,
        }, {
-               .name = "Flexible RX Parser   ",
+               .name = "Double VLAN Filter (perf)  ",
+               .lb = STMMAC_LOOPBACK_PHY,
+               .fn = stmmac_test_dvlanfilt_perfect,
+       }, {
+               .name = "Flexible RX Parser         ",
                .lb = STMMAC_LOOPBACK_PHY,
                .fn = stmmac_test_rxp,
        }, {
-               .name = "SA Insertion (desc)  ",
+               .name = "SA Insertion (desc)        ",
                .lb = STMMAC_LOOPBACK_PHY,
                .fn = stmmac_test_desc_sai,
        }, {
-               .name = "SA Replacement (desc)",
+               .name = "SA Replacement (desc)      ",
                .lb = STMMAC_LOOPBACK_PHY,
                .fn = stmmac_test_desc_sar,
        }, {
-               .name = "SA Insertion (reg)  ",
+               .name = "SA Insertion (reg)         ",
                .lb = STMMAC_LOOPBACK_PHY,
                .fn = stmmac_test_reg_sai,
        }, {
-               .name = "SA Replacement (reg)",
+               .name = "SA Replacement (reg)       ",
                .lb = STMMAC_LOOPBACK_PHY,
                .fn = stmmac_test_reg_sar,
        }, {
-               .name = "VLAN TX Insertion   ",
+               .name = "VLAN TX Insertion          ",
                .lb = STMMAC_LOOPBACK_PHY,
                .fn = stmmac_test_vlanoff,
        }, {
-               .name = "SVLAN TX Insertion  ",
+               .name = "SVLAN TX Insertion         ",
                .lb = STMMAC_LOOPBACK_PHY,
                .fn = stmmac_test_svlanoff,
        }, {
-               .name = "L3 DA Filtering     ",
+               .name = "L3 DA Filtering            ",
                .lb = STMMAC_LOOPBACK_PHY,
                .fn = stmmac_test_l3filt_da,
        }, {
-               .name = "L3 SA Filtering     ",
+               .name = "L3 SA Filtering            ",
                .lb = STMMAC_LOOPBACK_PHY,
                .fn = stmmac_test_l3filt_sa,
        }, {
-               .name = "L4 DA TCP Filtering ",
+               .name = "L4 DA TCP Filtering        ",
                .lb = STMMAC_LOOPBACK_PHY,
                .fn = stmmac_test_l4filt_da_tcp,
        }, {
-               .name = "L4 SA TCP Filtering ",
+               .name = "L4 SA TCP Filtering        ",
                .lb = STMMAC_LOOPBACK_PHY,
                .fn = stmmac_test_l4filt_sa_tcp,
        }, {
-               .name = "L4 DA UDP Filtering ",
+               .name = "L4 DA UDP Filtering        ",
                .lb = STMMAC_LOOPBACK_PHY,
                .fn = stmmac_test_l4filt_da_udp,
        }, {
-               .name = "L4 SA UDP Filtering ",
+               .name = "L4 SA UDP Filtering        ",
                .lb = STMMAC_LOOPBACK_PHY,
                .fn = stmmac_test_l4filt_sa_udp,
        }, {
-               .name = "ARP Offload         ",
+               .name = "ARP Offload                ",
                .lb = STMMAC_LOOPBACK_PHY,
                .fn = stmmac_test_arpoffload,
        }, {
-               .name = "Jumbo Frame         ",
+               .name = "Jumbo Frame                ",
                .lb = STMMAC_LOOPBACK_PHY,
                .fn = stmmac_test_jumbo,
        }, {
-               .name = "Multichannel Jumbo  ",
+               .name = "Multichannel Jumbo         ",
                .lb = STMMAC_LOOPBACK_PHY,
                .fn = stmmac_test_mjumbo,
        }, {
-               .name = "Split Header        ",
+               .name = "Split Header               ",
                .lb = STMMAC_LOOPBACK_PHY,
                .fn = stmmac_test_sph,
        },
-- 
2.7.4

Reply via email to