netdev
[Top] [All Lists]

Re: r8169 - panic and a fix

To: Srihari Vijayaraghavan <sriharivijayaraghavan@xxxxxxxxxxxx>
Subject: Re: r8169 - panic and a fix
From: Francois Romieu <romieu@xxxxxxxxxxxxx>
Date: Wed, 8 Sep 2004 21:06:03 +0200
Cc: netdev@xxxxxxxxxxx
In-reply-to: <200409082224.23829.sriharivijayaraghavan@xxxxxxxxxxxx>
References: <200409082224.23829.sriharivijayaraghavan@xxxxxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mutt/1.4.1i
Srihari Vijayaraghavan <sriharivijayaraghavan@xxxxxxxxxxxx> :
> As of 2.6.9-rc1-bk11, r8169 does not work on my Athlon 64 machine. It results 
> in a panic :-(.
[skb_over_panic]

Can you:
- make drivers/net/r8169.s and send me the r8169.s file
- objdump -S drivers/net/r8169.o and send me output
- Re-apply the patch which test size(dma_arrd_t), apply the patch below
  and report the (possibly oopsy) result ?


--- drivers/net/r8169.c 2004-09-08 20:15:01.000000000 +0200
+++ dirvers/net/r8169.c 2004-09-08 20:49:58.000000000 +0200
@@ -52,6 +52,7 @@ VERSION 1.2   <2002/11/30>
 #define MODULENAME "r8169"
 #define RTL8169_DRIVER_NAME   MODULENAME " Gigabit Ethernet driver " 
RTL8169_VERSION
 #define PFX MODULENAME ": "
+#define RTL8169_DEBUG
 
 #ifdef RTL8169_DEBUG
 #define assert(expr) \
@@ -1308,7 +1309,7 @@ rtl8169_hw_start(struct net_device *dev)
        RTL_W8(EarlyTxThres, EarlyTxThld);
 
        // For gigabit rtl8169
-       RTL_W16(RxMaxSize, RxPacketMaxSize);
+       RTL_W16(RxMaxSize, RX_BUF_SIZE);
 
        // Set Rx Config register
        i = rtl8169_rx_config |
@@ -1698,6 +1699,7 @@ rtl8169_rx_interrupt(struct net_device *
                        pci_action(tp->pci_dev, le64_to_cpu(desc->addr),
                                   RX_BUF_SIZE, PCI_DMA_FROMDEVICE);
 
+                       assert(pkt_size <= RX_BUF_SIZE);
                        skb_put(skb, pkt_size);
                        skb->protocol = eth_type_trans(skb, dev);
                        rtl8169_rx_skb(skb);

<Prev in Thread] Current Thread [Next in Thread>