generic: ar8216: fix port number check in 'ar8xxx_mib_work_func'
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Tue, 20 Nov 2012 20:40:04 +0000 (20:40 +0000)
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Tue, 20 Nov 2012 20:40:04 +0000 (20:40 +0000)
Also add a WARN_ON to 'ar8216_mib_fetch_port_stat'

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34283 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/generic/files/drivers/net/phy/ar8216.c

index 8fc1f4b..6187d52 100644 (file)
@@ -425,6 +425,8 @@ ar8216_mib_fetch_port_stat(struct ar8216_priv *priv, int port, bool flush)
        u64 *mib_stats;
        int i;
 
        u64 *mib_stats;
        int i;
 
+       WARN_ON(port >= priv->dev.ports);
+
        lockdep_assert_held(&priv->mib_lock);
 
        if (chip_is_ar8327(priv))
        lockdep_assert_held(&priv->mib_lock);
 
        if (chip_is_ar8327(priv))
@@ -1710,7 +1712,7 @@ ar8xxx_mib_work_func(struct work_struct *work)
 
 next_port:
        priv->mib_next_port++;
 
 next_port:
        priv->mib_next_port++;
-       if (priv->mib_next_port > priv->dev.ports)
+       if (priv->mib_next_port >= priv->dev.ports)
                priv->mib_next_port = 0;
 
        mutex_unlock(&priv->mib_lock);
                priv->mib_next_port = 0;
 
        mutex_unlock(&priv->mib_lock);