Description of Problem: ns83830.o modules fails when trying to bring up the network. This has been tested on Redhat 7.2 and 7.3. Tested kernels included all applicable redhat kernel (default install and upgrades), various vanilla kernels including the lastest pre releases. A partly working solution (patch) was found with the help of Benjamin LaHaise which applied to redhat 7.2. This would allow me to start the network and have a working system. Bringing down the network would require me to rmmod the ns83820 module before bringing up the network again. This also affects the pci cards from Trendware TEG-PCITX (http://www.trendware.com/products/TEG-PCITX.htm) They can get an ip but not restart the network without rmmod ns83820 Version-Release number of selected component (if applicable): all versions of the ns83820 driver in all kernels tested. When I pull the network the kernel prints: eth0 now up. 10Mbs, half duplex. When I insert the network cable again I get: eth0: network now down. (on redhat 7.3 fresh install) How Reproducible: Buy a motherboard called MB-3792G and try to get 1 Gbit networking working. MB-3792G motherboard (onboard ns83820 chip) http://www.icpamerica.com/mb_3792g.php I have 5 of them and it's the same every time. Steps to Reproduce: 1. turn on computer 2. bring up networking (if not done automatically) 3. restart networking Actual Results: timeout when trying to get a network address Expected Results: a working network Additional Information: Benjamin LaHaise worked on this with me. A look at the source code gives me the impression that the patch was included but something else is now breaking the driver.
Ben..?
Dammit.. Sorry I'm tired and frustrated. Just lost a servers root (raid5). Installed the redhat 7.3 instead of 7.2. Could not get networking running again. Checked the sources against a pathced 7.2 source. My fault on that one. Found out that both where unpatched. Still doesn't help me much. I'll go apply the (right) patch and recompile so I might at least get networking up. It still does nothing to help the start/stop bug. Please let me know I you have anything I should test. This was the patch Ben supplied me with original: #define SSPDSTS_POLARITY (CFG_SPDSTS1 | CFG_SPDSTS0 | CFG_DUPSTS) patched: #define SSPDSTS_POLARITY (CFG_SPDSTS1 | CFG_SPDSTS0 | CFG_DUPSTS | CFG_LNKSTS) -Rene
Can you try out 0.20+fix of ns83820.c from http://www.kvack.org/~blah/ns83820.c and insmod ns83820.o lnksts=1? Then do a dmesg and provide the startup messages of the driver. Until I've got a workaround that can be used across all cards, you'll have to use the lnksts=1 parameter.
I included all the output I could get. "eth0: link now down" and down is the output I get when I try to restart networking and until it times out. (dmesg output is further down) I've also noticed a new bug which seems to be related to this. Something that happens when using Redhat 7.3 instead of Redhat 7.2 on a system. This is a snippet from one of my logs. The logs are filled with this and they only occur on redhat 7.3 when a user connects using Appletalk (netatalk). It's not netatalk thats causing this. I've tested several versions. It only happens when reading data, from the server, not the other way around, and it seems to be harmless. No data corruption has occured. Just an early warning, I'll try some older kernels and other stuff and report my findings if they still seem related. kernel: frag: buf=07515000 page=00007515 offset=00000000 kernel: frag: buf=07515228 page=00007515 offset=00000228 kernel: frag: buf=075157dc page=00007515 offset=000007dc kernel: frag: buf=07515d90 page=00007515 offset=00000d90 kernel: frag: buf=07514000 page=00007514 offset=00000000 Dmesg output: ns83820.c: National Semiconductor DP83820 10/100/1000 driver. eth0: ns83820.c: 0x22c: 00000000, subsystem: 0000:0000 eth0: ns83820 v0.20: DP83820 v1.2: 00:40:f4:23:9c:fb io=0xdc000000 irq=18 f=sg eth0: link now down. eth0: ns83820_tx_watch: 0 1 1 eth0: tx_timeout: tx_done_idx=0 free_idx=1 cmdsts=a000024e eth0: after: tx_done_idx=0 free_idx=1 cmdsts=a000024e eth0: ns83820_tx_watch: 0 1 1 eth0: tx_timeout: tx_done_idx=0 free_idx=1 cmdsts=a000024e eth0: after: tx_done_idx=0 free_idx=1 cmdsts=a000024e eth0: ns83820_tx_watch: 0 2 2 eth0: tx_timeout: tx_done_idx=0 free_idx=2 cmdsts=a000024e eth0: after: tx_done_idx=0 free_idx=2 cmdsts=a000024e eth0: ns83820_tx_watch: 0 2 2 eth0: tx_timeout: tx_done_idx=0 free_idx=2 cmdsts=a000024e eth0: after: tx_done_idx=0 free_idx=2 cmdsts=a000024e eth0: ns83820_tx_watch: 0 2 2 eth0: tx_timeout: tx_done_idx=0 free_idx=2 cmdsts=a000024e eth0: after: tx_done_idx=0 free_idx=2 cmdsts=a000024e eth0: ns83820_tx_watch: 0 2 2 eth0: tx_timeout: tx_done_idx=0 free_idx=2 cmdsts=a000024e eth0: after: tx_done_idx=0 free_idx=2 cmdsts=a000024e eth0: ns83820_tx_watch: 0 3 3 eth0: tx_timeout: tx_done_idx=0 free_idx=3 cmdsts=a000024e eth0: after: tx_done_idx=0 free_idx=3 cmdsts=a000024e eth0: ns83820_tx_watch: 0 3 3 eth0: tx_timeout: tx_done_idx=0 free_idx=3 cmdsts=a000024e eth0: after: tx_done_idx=0 free_idx=3 cmdsts=a000024e eth0: ns83820_tx_watch: 3 4 1 eth0: tx_timeout: tx_done_idx=3 free_idx=4 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=4 cmdsts=8000024e eth0: ns83820_tx_watch: 3 4 1 eth0: tx_timeout: tx_done_idx=3 free_idx=4 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=4 cmdsts=8000024e eth0: ns83820_tx_watch: 3 5 2 eth0: tx_timeout: tx_done_idx=3 free_idx=5 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=5 cmdsts=8000024e eth0: ns83820_tx_watch: 3 5 2 eth0: tx_timeout: tx_done_idx=3 free_idx=5 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=5 cmdsts=8000024e eth0: ns83820_tx_watch: 3 5 2 eth0: tx_timeout: tx_done_idx=3 free_idx=5 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=5 cmdsts=8000024e eth0: ns83820_tx_watch: 3 5 2 eth0: tx_timeout: tx_done_idx=3 free_idx=5 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=5 cmdsts=8000024e eth0: ns83820_tx_watch: 3 6 3 eth0: tx_timeout: tx_done_idx=3 free_idx=6 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=6 cmdsts=8000024e eth0: ns83820_tx_watch: 3 6 3 eth0: tx_timeout: tx_done_idx=3 free_idx=6 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=6 cmdsts=8000024e eth0: ns83820_tx_watch: 3 6 3 eth0: tx_timeout: tx_done_idx=3 free_idx=6 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=6 cmdsts=8000024e eth0: ns83820_tx_watch: 3 6 3 eth0: tx_timeout: tx_done_idx=3 free_idx=6 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=6 cmdsts=8000024e eth0: ns83820_tx_watch: 3 6 3 eth0: tx_timeout: tx_done_idx=3 free_idx=6 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=6 cmdsts=8000024e eth0: ns83820_tx_watch: 3 6 3 eth0: tx_timeout: tx_done_idx=3 free_idx=6 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=6 cmdsts=8000024e eth0: ns83820_tx_watch: 3 6 3 eth0: tx_timeout: tx_done_idx=3 free_idx=6 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=6 cmdsts=8000024e eth0: ns83820_tx_watch: 3 6 3 eth0: tx_timeout: tx_done_idx=3 free_idx=6 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=6 cmdsts=8000024e eth0: ns83820_tx_watch: 3 7 4 eth0: tx_timeout: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: ns83820_tx_watch: 3 7 4 eth0: tx_timeout: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: ns83820_tx_watch: 3 7 4 eth0: tx_timeout: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: ns83820_tx_watch: 3 7 4 eth0: tx_timeout: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: ns83820_tx_watch: 3 7 4 eth0: tx_timeout: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: ns83820_tx_watch: 3 7 4 eth0: tx_timeout: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: ns83820_tx_watch: 3 7 4 eth0: tx_timeout: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: ns83820_tx_watch: 3 7 4 eth0: tx_timeout: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: ns83820_tx_watch: 3 7 4 eth0: tx_timeout: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: ns83820_tx_watch: 3 7 4 eth0: tx_timeout: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: ns83820_tx_watch: 3 7 4 eth0: tx_timeout: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: ns83820_tx_watch: 3 7 4 eth0: tx_timeout: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: ns83820_tx_watch: 3 7 4 eth0: tx_timeout: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: ns83820_tx_watch: 3 7 4 eth0: tx_timeout: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: ns83820_tx_watch: 3 7 4 eth0: tx_timeout: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: ns83820_tx_watch: 3 7 4 eth0: tx_timeout: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=7 cmdsts=8000024e eth0: ns83820_tx_watch: 3 8 5 eth0: tx_timeout: tx_done_idx=3 free_idx=8 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=8 cmdsts=8000024e eth0: ns83820_tx_watch: 3 8 5 eth0: tx_timeout: tx_done_idx=3 free_idx=8 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=8 cmdsts=8000024e eth0: ns83820_tx_watch: 3 9 6 eth0: tx_timeout: tx_done_idx=3 free_idx=9 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=9 cmdsts=8000024e eth0: ns83820_tx_watch: 3 9 6 eth0: tx_timeout: tx_done_idx=3 free_idx=9 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=9 cmdsts=8000024e eth0: ns83820_tx_watch: 3 9 6 eth0: tx_timeout: tx_done_idx=3 free_idx=9 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=9 cmdsts=8000024e eth0: ns83820_tx_watch: 3 9 6 eth0: tx_timeout: tx_done_idx=3 free_idx=9 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=9 cmdsts=8000024e eth0: ns83820_tx_watch: 3 10 7 eth0: tx_timeout: tx_done_idx=3 free_idx=10 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=10 cmdsts=8000024e eth0: ns83820_tx_watch: 3 10 7 eth0: tx_timeout: tx_done_idx=3 free_idx=10 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=10 cmdsts=8000024e eth0: ns83820_tx_watch: 3 10 7 eth0: tx_timeout: tx_done_idx=3 free_idx=10 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=10 cmdsts=8000024e eth0: ns83820_tx_watch: 3 10 7 eth0: tx_timeout: tx_done_idx=3 free_idx=10 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=10 cmdsts=8000024e eth0: ns83820_tx_watch: 3 10 7 eth0: tx_timeout: tx_done_idx=3 free_idx=10 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=10 cmdsts=8000024e eth0: ns83820_tx_watch: 3 10 7 eth0: tx_timeout: tx_done_idx=3 free_idx=10 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=10 cmdsts=8000024e eth0: ns83820_tx_watch: 3 10 7 eth0: tx_timeout: tx_done_idx=3 free_idx=10 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=10 cmdsts=8000024e eth0: ns83820_tx_watch: 3 10 7 eth0: tx_timeout: tx_done_idx=3 free_idx=10 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=10 cmdsts=8000024e eth0: ns83820_tx_watch: 3 11 8 eth0: tx_timeout: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: ns83820_tx_watch: 3 11 8 eth0: tx_timeout: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: ns83820_tx_watch: 3 11 8 eth0: tx_timeout: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: ns83820_tx_watch: 3 11 8 eth0: tx_timeout: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: ns83820_tx_watch: 3 11 8 eth0: tx_timeout: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: ns83820_tx_watch: 3 11 8 eth0: tx_timeout: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: ns83820_tx_watch: 3 11 8 eth0: tx_timeout: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: ns83820_tx_watch: 3 11 8 eth0: tx_timeout: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: ns83820_tx_watch: 3 11 8 eth0: tx_timeout: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: ns83820_tx_watch: 3 11 8 eth0: tx_timeout: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: ns83820_tx_watch: 3 11 8 eth0: tx_timeout: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: ns83820_tx_watch: 3 11 8 eth0: tx_timeout: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: ns83820_tx_watch: 3 11 8 eth0: tx_timeout: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: ns83820_tx_watch: 3 11 8 eth0: tx_timeout: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: ns83820_tx_watch: 3 11 8 eth0: tx_timeout: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: ns83820_tx_watch: 3 11 8 eth0: tx_timeout: tx_done_idx=3 free_idx=11 cmdsts=8000024e eth0: after: tx_done_idx=3 free_idx=11 cmdsts=8000024e
v0.20 has several fixes to the transmit code that should address that problem. Please report back on how it works along with the startup messages needed.
Ok. The problems with fragsments seem to be gone. I tested with the latest release of netatalk (1.5.5). The one problem left with netatalk is that I have to run in allmulti or promisc mode to get servers to show up the the apple Chooser program. This has caused problems with stability which I've made workarounds for. I was told that this problem was related to my NIC driver. I don't have to expertise to say if that is true though. What can I do to help fix the "rmmod ns83820 before restarting network" problem? Thanks -Rene
Hmmm, that sounds like a bug in the multicast code. I'll have a look into it.
Thanks for the bug report. However, Red Hat no longer maintains this version of the product. Please upgrade to the latest version and open a new bug if the problem persists. The Fedora Legacy project (http://fedoralegacy.org/) maintains some older releases, and if you believe this bug is interesting to them, please report the problem in the bug tracker at: http://bugzilla.fedora.us/