projects
/
openwrt
/
.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
generic: ar8216: mib_work_func: read all port mibs everytime
[openwrt/.git]
/
target
/
linux
/
generic
/
files
/
drivers
/
net
/
phy
/
ar8216.c
diff --git
a/target/linux/generic/files/drivers/net/phy/ar8216.c
b/target/linux/generic/files/drivers/net/phy/ar8216.c
index c62411c9c19dc2c81e185d8928dc24ce25b7c9c7..a33d4b31fe2ebcaffb721f14ed906c5fc0ebd587 100644
(file)
--- a/
target/linux/generic/files/drivers/net/phy/ar8216.c
+++ b/
target/linux/generic/files/drivers/net/phy/ar8216.c
@@
-2189,7
+2189,7
@@
static void
ar8xxx_mib_work_func(struct work_struct *work)
{
struct ar8xxx_priv *priv;
ar8xxx_mib_work_func(struct work_struct *work)
{
struct ar8xxx_priv *priv;
- int err;
+ int err
, i
;
priv = container_of(work, struct ar8xxx_priv, mib_work.work);
priv = container_of(work, struct ar8xxx_priv, mib_work.work);
@@
-2197,15
+2197,12
@@
ar8xxx_mib_work_func(struct work_struct *work)
err = ar8xxx_mib_capture(priv);
if (err)
err = ar8xxx_mib_capture(priv);
if (err)
- goto next_port;
-
- ar8xxx_mib_fetch_port_stat(priv, priv->mib_next_port, false);
+ goto next_attempt;
-next_port:
- priv->mib_next_port++;
- if (priv->mib_next_port >= priv->dev.ports)
- priv->mib_next_port = 0;
+ for (i = 0; i < priv->dev.ports; i++)
+ ar8xxx_mib_fetch_port_stat(priv, i, false);
+next_attempt:
mutex_unlock(&priv->mib_lock);
schedule_delayed_work(&priv->mib_work,
msecs_to_jiffies(AR8XXX_MIB_WORK_DELAY));
mutex_unlock(&priv->mib_lock);
schedule_delayed_work(&priv->mib_work,
msecs_to_jiffies(AR8XXX_MIB_WORK_DELAY));