[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