--- drivers/net/8139too.c | 14 ++++++-------- 1 files changed, 6 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 17:02:32.000000000 +0900 +++ linux-2.6.3-hirofumi/drivers/net/8139too.c 2004-02-29 17:02:59.000000000 +0900 @@ -1374,6 +1374,7 @@ static int rtl8139_open (struct net_devi rtl8139_start_thread(dev); + printk("%s: revert01\n", dev->name); spin_lock_irq(&tp->lock); RTL8139_DUMP(dev); spin_unlock_irq(&tp->lock); @@ -2043,12 +2044,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 +2203,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. */ _