Messages in this thread Patches in this message | | | Subject | Re: 2.6.3 - 8139too timeout debug info | From | OGAWA Hirofumi <> | Date | Sun, 29 Feb 2004 16:58:37 +0900 |
| |
"Nick Warne" <nick@ukfsn.org> writes:
> Thanks for your help. I have hell of a trouble doing this, as soon > as any network load happens, the box becomes unresponsive during > timeouts - but hopefully I have caught the info required.
Umm.. Looks like chip registers is normal, but TX/RX interrupt doesn't happen. (BTW, there isn't rtl8139_open on debuginfo.txt. Was it already scrolled?)
The following patch (incremental patch) is some part reverts to 2.6.2. Is behavior changed?
Please try 8139too-revert01.patch, and 8139too-revert02.patch. -- OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
---
drivers/net/8139too.c | 13 +++++-------- 1 files changed, 5 insertions(+), 8 deletions(-)
diff -puN drivers/net/8139too.c~8139too-revert01 drivers/net/8139too.c --- linux-2.6.3/drivers/net/8139too.c~8139too-revert01 2004-02-29 16:05:54.000000000 +0900 +++ linux-2.6.3-hirofumi/drivers/net/8139too.c 2004-02-29 16:29:41.000000000 +0900 @@ -2043,12 +2043,10 @@ static int rtl8139_rx(struct net_device skb_put (skb, pkt_size); skb->protocol = eth_type_trans (skb, dev); - + netif_rx (skb); dev->last_rx = jiffies; tp->stats.rx_bytes += pkt_size; tp->stats.rx_packets++; - - netif_receive_skb (skb); } else { if (net_ratelimit()) printk (KERN_WARNING @@ -2204,11 +2202,10 @@ static irqreturn_t rtl8139_interrupt (in /* Receive packets are processed by poll routine. If not running start it now. */ - if (status & RxAckBits){ - if (netif_rx_schedule_prep(dev)) { - RTL_W16_F (IntrMask, rtl8139_norx_intr_mask); - __netif_rx_schedule (dev); - } + if (status & RxAckBits) { + RTL_W16_F(IntrMask, rtl8139_norx_intr_mask); + rtl8139_rx(dev, tp, dev->weight); + RTL_W16_F(IntrMask, rtl8139_intr_mask); } /* Check uncommon events with one test. */ _ ---
drivers/net/8139too.c | 6 ++---- 1 files changed, 2 insertions(+), 4 deletions(-)
diff -puN drivers/net/8139too.c~8139too-revert02 drivers/net/8139too.c --- linux-2.6.3/drivers/net/8139too.c~8139too-revert02 2004-02-29 16:30:14.000000000 +0900 +++ linux-2.6.3-hirofumi/drivers/net/8139too.c 2004-02-29 16:33:35.000000000 +0900 @@ -1374,6 +1374,7 @@ static int rtl8139_open (struct net_devi rtl8139_start_thread(dev); + printk("%s: revert02\n", dev->name); spin_lock_irq(&tp->lock); RTL8139_DUMP(dev); spin_unlock_irq(&tp->lock); @@ -2202,11 +2203,8 @@ static irqreturn_t rtl8139_interrupt (in /* Receive packets are processed by poll routine. If not running start it now. */ - if (status & RxAckBits) { - RTL_W16_F(IntrMask, rtl8139_norx_intr_mask); + if (status & RxAckBits) rtl8139_rx(dev, tp, dev->weight); - RTL_W16_F(IntrMask, rtl8139_intr_mask); - } /* Check uncommon events with one test. */ if (unlikely(status & (PCIErr | PCSTimeout | RxUnderrun | RxErr))) _
| |