Re: [PATCH net 4/9] net: stmmac: selftests: Must remove UC/MC addresses to prevent false positives

From: David Miller
Date: Wed Oct 30 2019 - 17:52:38 EST


From: Jose Abreu <Jose.Abreu@xxxxxxxxxxxx>
Date: Tue, 29 Oct 2019 15:14:48 +0100

> @@ -499,9 +501,18 @@ static int stmmac_test_hfilt(struct stmmac_priv *priv)
> if (netdev_mc_count(priv->dev) >= priv->hw->multicast_filter_bins)
> return -EOPNOTSUPP;

This test above...

> + dummy_dev = alloc_etherdev(0);
> + if (!dummy_dev)
> + return -ENOMEM;
> +
> + /* Remove all MC addresses */
> + netdev_for_each_mc_addr(ha, priv->dev)
> + dev_mc_add(dummy_dev, ha->addr);
> + dev_mc_flush(priv->dev);

No longer makes any sense now that you're removing all of the MC
addresses.

Also I know it seems that it should be guaranteed that re-adding all of
the previously configured MC addresses should succeed. But I am always
wary when I see error codes ignored like this.

This test makes destructure changes to the device's configuration,
perhaps in a non-restorable fashion if errors occur re-adding the MC
list entries.

Running a test should never even remotely introduce a change in the
device state like that.

I really don't like this, to be honest. I'd hate to be the user who
had this somehow trigger on them and then have to diagnose it. :-/