projects
/
cascardo
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
forcedeth: run loopback test only on chipsets that support it
[cascardo/linux.git]
/
drivers
/
net
/
ethernet
/
nvidia
/
forcedeth.c
diff --git
a/drivers/net/ethernet/nvidia/forcedeth.c
b/drivers/net/ethernet/nvidia/forcedeth.c
index
2d045be
..
1e8b951
100644
(file)
--- a/
drivers/net/ethernet/nvidia/forcedeth.c
+++ b/
drivers/net/ethernet/nvidia/forcedeth.c
@@
-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);
{
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;
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;
}
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;
}
test->flags |= ETH_TEST_FL_FAILED;
buffer[3] = 1;
}