[kernel] r15676 - in dists/lenny/linux-2.6/debian: . patches/bugfix/all/r8169 patches/series

Ben Hutchings benh at alioth.debian.org
Thu May 13 02:31:00 UTC 2010


Author: benh
Date: Thu May 13 02:30:58 2010
New Revision: 15676

Log:
r8169: fix broken register writes (Closes: #407217, #573007)

Added:
   dists/lenny/linux-2.6/debian/patches/bugfix/all/r8169/r8169-14-fix-broken-register-writes.patch
   dists/lenny/linux-2.6/debian/patches/bugfix/all/r8169/r8169-15-more-broken-register-writes-workaround.patch
Modified:
   dists/lenny/linux-2.6/debian/changelog
   dists/lenny/linux-2.6/debian/patches/series/23

Modified: dists/lenny/linux-2.6/debian/changelog
==============================================================================
--- dists/lenny/linux-2.6/debian/changelog	Thu May 13 02:24:07 2010	(r15675)
+++ dists/lenny/linux-2.6/debian/changelog	Thu May 13 02:30:58 2010	(r15676)
@@ -13,6 +13,7 @@
   * raid456: Fix two bugs in handling of degraded states (Closes: #581392)
     - Prevent reshaping of doubly-degraded RAID4
     - Enable error-correction on singly-degraded RAID6
+  * r8169: fix broken register writes (Closes: #407217, #573007)
 
   [ maximilian attems ]
   * openvz: printk_cpu have to be "cleared" in __vprintk (v2)

Added: dists/lenny/linux-2.6/debian/patches/bugfix/all/r8169/r8169-14-fix-broken-register-writes.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/lenny/linux-2.6/debian/patches/bugfix/all/r8169/r8169-14-fix-broken-register-writes.patch	Thu May 13 02:30:58 2010	(r15676)
@@ -0,0 +1,54 @@
+From ef68673a14ca255dcdbfff9eae28fbc44d98cb6d Mon Sep 17 00:00:00 2001
+From: Francois Romieu <romieu at fr.zoreil.com>
+Date: Sat, 27 Mar 2010 19:35:46 -0700
+Subject: [PATCH 1/2] r8169: fix broken register writes
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+commit 78f1cd02457252e1ffbc6caa44a17424a45286b8 upstream.
+
+This is quite similar to b39fe41f481d20c201012e4483e76c203802dda7
+though said registers are not even documented as 64-bit registers
+- as opposed to the initial TxDescStartAddress ones - but as single
+bytes which must be combined into 32 bits at the MMIO read/write
+level before being merged into a 64 bit logical entity.
+
+Credits go to Ben Hutchings <ben at decadent.org.uk> for the MAR
+registers (aka "multicast is broken for ages on ARM) and to
+Timo Teräs <timo.teras at iki.fi> for the MAC registers.
+
+Signed-off-by: Francois Romieu <romieu at fr.zoreil.com>
+Signed-off-by: David S. Miller <davem at davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+---
+ drivers/net/r8169.c |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
+index 9d3dd3c..f79886d 100644
+--- a/drivers/net/r8169.c
++++ b/drivers/net/r8169.c
+@@ -2832,8 +2832,8 @@ static void rtl_rar_set(struct rtl8169_private *tp, u8 *addr)
+ 	spin_lock_irq(&tp->lock);
+ 
+ 	RTL_W8(Cfg9346, Cfg9346_Unlock);
+-	RTL_W32(MAC0, low);
+ 	RTL_W32(MAC4, high);
++	RTL_W32(MAC0, low);
+ 	RTL_W8(Cfg9346, Cfg9346_Lock);
+ 
+ 	spin_unlock_irq(&tp->lock);
+@@ -4814,8 +4814,8 @@ static void rtl_set_rx_mode(struct net_device *dev)
+ 		mc_filter[1] = swab32(data);
+ 	}
+ 
+-	RTL_W32(MAR0 + 0, mc_filter[0]);
+ 	RTL_W32(MAR0 + 4, mc_filter[1]);
++	RTL_W32(MAR0 + 0, mc_filter[0]);
+ 
+ 	RTL_W32(RxConfig, tmp);
+ 
+-- 
+1.7.1
+

Added: dists/lenny/linux-2.6/debian/patches/bugfix/all/r8169/r8169-15-more-broken-register-writes-workaround.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/lenny/linux-2.6/debian/patches/bugfix/all/r8169/r8169-15-more-broken-register-writes-workaround.patch	Thu May 13 02:30:58 2010	(r15676)
@@ -0,0 +1,38 @@
+From 5d5749c86711c91499820043202db1f534d0aeec Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?fran=C3=A7ois=20romieu?= <romieu at fr.zoreil.com>
+Date: Mon, 26 Apr 2010 11:42:58 +0000
+Subject: [PATCH 2/2] r8169: more broken register writes workaround
+
+commit 908ba2bfd22253f26fa910cd855e4ccffb1467d0 upstream.
+
+78f1cd02457252e1ffbc6caa44a17424a45286b8 ("fix broken register writes")
+does not work for Al Viro's r8169 (XID 18000000).
+
+Signed-off-by: Francois Romieu <romieu at fr.zoreil.com>
+Signed-off-by: David S. Miller <davem at davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+---
+ drivers/net/r8169.c |    5 +++++
+ 1 files changed, 5 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
+index f79886d..211b587 100644
+--- a/drivers/net/r8169.c
++++ b/drivers/net/r8169.c
+@@ -2832,8 +2832,13 @@ static void rtl_rar_set(struct rtl8169_private *tp, u8 *addr)
+ 	spin_lock_irq(&tp->lock);
+ 
+ 	RTL_W8(Cfg9346, Cfg9346_Unlock);
++
+ 	RTL_W32(MAC4, high);
++	RTL_R32(MAC4);
++
+ 	RTL_W32(MAC0, low);
++	RTL_R32(MAC0);
++
+ 	RTL_W8(Cfg9346, Cfg9346_Lock);
+ 
+ 	spin_unlock_irq(&tp->lock);
+-- 
+1.7.1
+

Modified: dists/lenny/linux-2.6/debian/patches/series/23
==============================================================================
--- dists/lenny/linux-2.6/debian/patches/series/23	Thu May 13 02:24:07 2010	(r15675)
+++ dists/lenny/linux-2.6/debian/patches/series/23	Thu May 13 02:30:58 2010	(r15676)
@@ -6,3 +6,5 @@
 + bugfix/all/bnx2-Fix-lost-MSI-X-problem-on-5709-NICs.patch
 + bugfix/all/md-raid5-run-Fix-max_degraded-for-raid-level-4.patch
 + bugfix/all/md-raid6-Fix-raid-6-read-error-correction-in-degraded-state.patch
++ bugfix/all/r8169/r8169-14-fix-broken-register-writes.patch
++ bugfix/all/r8169/r8169-15-more-broken-register-writes-workaround.patch



More information about the Kernel-svn-changes mailing list