public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] r8169: use RxFIFO overflow workaround for 8168c chipset
@ 2011-01-27 11:24 Ivan Vecera
  2011-01-27 11:27 ` Ivan Vecera
  2011-01-27 14:32 ` Francois Romieu
  0 siblings, 2 replies; 6+ messages in thread
From: Ivan Vecera @ 2011-01-27 11:24 UTC (permalink / raw)
  To: netdev; +Cc: romieu

I found that one of the 8168c chipsets (concretely XID 1c4000c0) starts
generating RxFIFO overflow errors. The result is an infinite loop in
interrupt handler as the RxFIFOOver is handled only for ...MAC_VER_11.
With the workaround everything goes fine.

Signed-off-by: Ivan Vecera <ivecera@redhat.com>
---
 drivers/net/r8169.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index bde7d61..9ab3b43 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -3757,7 +3757,8 @@ static void rtl_hw_start_8168(struct net_device *dev)
 	RTL_W16(IntrMitigate, 0x5151);
 
 	/* Work around for RxFIFO overflow. */
-	if (tp->mac_version == RTL_GIGA_MAC_VER_11) {
+	if (tp->mac_version == RTL_GIGA_MAC_VER_11 ||
+	    tp->mac_version == RTL_GIGA_MAC_VER_22) {
 		tp->intr_event |= RxFIFOOver | PCSTimeout;
 		tp->intr_event &= ~RxOverflow;
 	}
@@ -4641,7 +4642,8 @@ static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance)
 
 		/* Work around for rx fifo overflow */
 		if (unlikely(status & RxFIFOOver) &&
-		(tp->mac_version == RTL_GIGA_MAC_VER_11)) {
+		    (tp->mac_version == RTL_GIGA_MAC_VER_11 ||
+		     tp->mac_version == RTL_GIGA_MAC_VER_22)) {
 			netif_stop_queue(dev);
 			rtl8169_tx_timeout(dev);
 			break;
-- 
1.7.3.4


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2011-02-01 10:30 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-27 11:24 [PATCH] r8169: use RxFIFO overflow workaround for 8168c chipset Ivan Vecera
2011-01-27 11:27 ` Ivan Vecera
2011-01-27 14:32 ` Francois Romieu
2011-01-27 19:23   ` Ivan Vecera
     [not found]     ` <20110128172537.GA11064@electric-eye.fr.zoreil.com>
2011-01-28 17:28       ` Francois Romieu
2011-02-01 10:30         ` Ivan Vecera

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox