[kernel] r14370 - in dists/lenny/linux-2.6/debian: . patches/bugfix/all patches/series
Ben Hutchings
benh at alioth.debian.org
Sat Oct 10 01:26:49 UTC 2009
Author: benh
Date: Sat Oct 10 01:26:47 2009
New Revision: 14370
Log:
r8169: Fix rx_missed_errors statistic (Closes: #531932)
Added:
dists/lenny/linux-2.6/debian/patches/bugfix/all/r8169-fix-rx_missed_errors.patch
Modified:
dists/lenny/linux-2.6/debian/changelog
dists/lenny/linux-2.6/debian/patches/series/20
Modified: dists/lenny/linux-2.6/debian/changelog
==============================================================================
--- dists/lenny/linux-2.6/debian/changelog Sat Oct 10 01:10:05 2009 (r14369)
+++ dists/lenny/linux-2.6/debian/changelog Sat Oct 10 01:26:47 2009 (r14370)
@@ -20,6 +20,7 @@
architectures (Closes: #511419)
* Sanitise <linux/socket.h> and <linux/uio.h> (Closes: #538372)
* nfs: Handle -ESTALE error in access() (Closes: #508866)
+ * r8169: Fix rx_missed_errors statistic (Closes: #531932)
[ dann frazier ]
* autofs4: don't make expiring dentry negative, avoiding an oops
Added: dists/lenny/linux-2.6/debian/patches/bugfix/all/r8169-fix-rx_missed_errors.patch
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/lenny/linux-2.6/debian/patches/bugfix/all/r8169-fix-rx_missed_errors.patch Sat Oct 10 01:26:47 2009 (r14370)
@@ -0,0 +1,89 @@
+Backported to 2.6.26 from:
+
+From: Francois Romieu <romieu at fr.zoreil.com>
+Date: Wed, 10 Sep 2008 22:28:56 +0200
+Subject: [PATCH] r8169: fix RxMissed register access
+
+- the register is defined for the 8169 chipset only and there is
+ no 8169 beyond RTL_GIGA_MAC_VER_06.
+- only the lower 3 bytes of the register are valid
+
+Fixes:
+1. http://bugzilla.kernel.org/show_bug.cgi?id=10180
+2. http://bugzilla.kernel.org/show_bug.cgi?id=11062 (bits of)
+
+Tested by Hermann Gausterer and Adam Huffman.
+
+Signed-off-by: Francois Romieu <romieu at fr.zoreil.com>
+Cc: Edward Hsu <edward_hsu at realtek.com.tw>
+Signed-off-by: Jeff Garzik <jgarzik at redhat.com>
+---
+--- a/drivers/net/r8169.c
++++ b/drivers/net/r8169.c
+@@ -2122,8 +2122,6 @@ static void rtl_hw_start_8168(struct net_device *dev)
+
+ RTL_R8(IntrMask);
+
+- RTL_W32(RxMissed, 0);
+-
+ rtl_set_rx_mode(dev);
+
+ RTL_W8(ChipCmd, CmdTxEnb | CmdRxEnb);
+@@ -2166,8 +2166,6 @@ static void rtl_hw_start_8101(struct net_device *dev)
+
+ RTL_R8(IntrMask);
+
+- RTL_W32(RxMissed, 0);
+-
+ rtl_set_rx_mode(dev);
+
+ RTL_W8(ChipCmd, CmdTxEnb | CmdRxEnb);
+@@ -2978,6 +2974,17 @@ static int rtl8169_poll(struct napi_struct *napi, int budget)
+ }
+ #endif
+
++static void rtl8169_rx_missed(struct net_device *dev, void __iomem *ioaddr)
++{
++ struct rtl8169_private *tp = netdev_priv(dev);
++
++ if (tp->mac_version > RTL_GIGA_MAC_VER_06)
++ return;
++
++ dev->stats.rx_missed_errors += (RTL_R32(RxMissed) & 0xffffff);
++ RTL_W32(RxMissed, 0);
++}
++
+ static void rtl8169_down(struct net_device *dev)
+ {
+ struct rtl8169_private *tp = netdev_priv(dev);
+@@ -2997,9 +3006,7 @@ core_down:
+
+ rtl8169_asic_down(ioaddr);
+
+- /* Update the error counts. */
+- dev->stats.rx_missed_errors += RTL_R32(RxMissed);
+- RTL_W32(RxMissed, 0);
++ rtl8169_rx_missed(dev, ioaddr);
+
+ spin_unlock_irq(&tp->lock);
+
+@@ -3121,8 +3126,7 @@ static struct net_device_stats *rtl8169_get_stats(struct net_device *dev)
+
+ if (netif_running(dev)) {
+ spin_lock_irqsave(&tp->lock, flags);
+- dev->stats.rx_missed_errors += RTL_R32(RxMissed);
+- RTL_W32(RxMissed, 0);
++ rtl8169_rx_missed(dev, ioaddr);
+ spin_unlock_irqrestore(&tp->lock, flags);
+ }
+
+@@ -3147,8 +3151,7 @@ static int rtl8169_suspend(struct pci_dev *pdev, pm_message_t state)
+
+ rtl8169_asic_down(ioaddr);
+
+- dev->stats.rx_missed_errors += RTL_R32(RxMissed);
+- RTL_W32(RxMissed, 0);
++ rtl8169_rx_missed(dev, ioaddr);
+
+ spin_unlock_irq(&tp->lock);
+
Modified: dists/lenny/linux-2.6/debian/patches/series/20
==============================================================================
--- dists/lenny/linux-2.6/debian/patches/series/20 Sat Oct 10 01:10:05 2009 (r14369)
+++ dists/lenny/linux-2.6/debian/patches/series/20 Sat Oct 10 01:26:47 2009 (r14370)
@@ -13,4 +13,5 @@
+ bugfix/all/sanitise-linux-socket-h.patch
+ bugfix/all/sanitise-linux-uio-h.patch
+ bugfix/all/nfs-handle-ESTALE-error-in-access.patch
++ bugfix/all/r8169-fix-rx_missed_errors.patch
+ features/all/ftdi_sio-openrd.patch
More information about the Kernel-svn-changes
mailing list