rx stops after 128KiB?

Tino Keitel <[email protected]> Thu, 9 Oct 2003 14:03:08 +0200
Newsgroups gmane.linux.drivers.realtek.devel
Message-ID <20031009120308.GA29205@thinkpad>
Hi folks,

I have a NexNIC MD010C, an RTL 8139 based 100 MBit NIC. I downloaded
the driver and compiled a pcmcia-cs driver and tweaked the config so
the cardmgr detects the card. Now I got these messages in syslog:

syslog at insert:

cardmgr[237]: socket 0: CardBus PC Card
kernel: cs: cb_alloc(bus 1): vendor 0x10ec, device 0x8139
cardmgr[237]: executing: 'modprobe cb_enabler'
cardmgr[237]: executing: 'modprobe realtek_cb'
kernel: rtl8139.c:v1.23 3/10/2003 Donald Becker, [email protected].
kernel:  http://www.scyld.com/network/rtl8139.html
kernel: cs: cb_config(bus 1)
kernel:   fn 0 bar 1: io 0x800-0x8ff
kernel:   fn 0 bar 2: mem 0x60002000-0x600021ff
kernel:   irq 10
kernel: cs: cb_enable(bus 1)
kernel:   bridge io map 0 (flags 0x21): 0x800-0x8ff
kernel:   bridge mem map 0 (flags 0x1): 0x60002000-0x60002fff
kernel: rtl8139_attach(bus 1, function 0)
cardmgr[237]: executing: './network start eth1'
kernel: eth1: RealTek RTL8129 Fast Ethernet at 0x800, IRQ 10,
00:10:60:5a:02:fd.
kernel: eth1: No MII transceivers found!  Assuming SYM transceiver.
kernel: eth1: Using full-duplex based on MII #32 link partner ability
of 45e1.

syslog at eject:

cardmgr[237]: executing: './network check eth1'
cardmgr[237]: executing: './network stop eth1'
kernel: rtl8139_detach(eth1)
cardmgr[237]: executing: 'modprobe -r realtek_cb'
kernel: Trying to free nonexistent resource <00000800-0000087f>
kernel: cs: cb_disable(bus 1)
kernel: cs: cb_release(bus 1)
cardmgr[237]: executing: 'modprobe -r cb_enabler'
kernel: cs: cb_free(bus 1)

My first impression was that the card works, since a first ping was
successful. However, after a while the connection broke down, no
traffic passes. I had to remove and reinsert the card.

After some analysis I found out that the card can send a large amount
of data. However, after recieving some data, the above problem will
occur. I tested with scp and ftp. The former stops afer 132 KiB, the
latter after 144 KiB, so it seems like the transfer hangs after
receiving 128 KiB of continous data (with the assumption that scp uses
4 KiB chunks and ftp uses 16 KiB chunks).

Is this a known problem? Any workarounds? Is the output in the syslog
ok, escpecially the line with "No MII transceivers found"? Can I do
some more to debug this problem, other than addings printk()s to the
driver's source?

Regards,
Tino