Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 86d9be26 authored by Ivan Vecera's avatar Ivan Vecera Committed by David S. Miller
Browse files

forcedeth: run loopback test only on chipsets that support it



The driver incorrectly run loopback test on chips that don't support it.
Loopback test is only supported by chips that has DEV_HAS_TEST_EXTENDED
flag and returns 4 (NV_TEST_COUNT_EXTENDED) as test count.

Signed-off-by: default avatarIvan Vecera <ivecera@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 89015c18
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -5150,8 +5150,10 @@ static void nv_self_test(struct net_device *dev, struct ethtool_test *test, u64
{
	struct fe_priv *np = netdev_priv(dev);
	u8 __iomem *base = get_hwbase(dev);
	int result;
	memset(buffer, 0, nv_get_sset_count(dev, ETH_SS_TEST)*sizeof(u64));
	int result, count;

	count = nv_get_sset_count(dev, ETH_SS_TEST);
	memset(buffer, 0, count * sizeof(u64));

	if (!nv_link_test(dev)) {
		test->flags |= ETH_TEST_FL_FAILED;
@@ -5195,7 +5197,7 @@ static void nv_self_test(struct net_device *dev, struct ethtool_test *test, u64
			return;
		}

		if (!nv_loopback_test(dev)) {
		if (count > NV_TEST_COUNT_BASE && !nv_loopback_test(dev)) {
			test->flags |= ETH_TEST_FL_FAILED;
			buffer[3] = 1;
		}