Date: Wed, 11 Apr 2001 19:50:16 -0700 (PDT) From: Doug Ambrisko <ambrisko@ambrisko.com> To: Andria Thomas <andria@tovaris.com> Cc: hackers@FreeBSD.ORG Subject: Re: problem with Aironet driver Message-ID: <200104120250.f3C2oGk29529@ambrisko.com> In-Reply-To: <3AD3303D.7E01528D@tovaris.com> "from Andria Thomas at Apr 10, 2001 12:09:33 pm"
next in thread | previous in thread | raw e-mail | index | archive | help
Andria Thomas writes: | Recently, we've seen messages like the following spewed to the consoles | of each machine: | | Mar 26 14:25:57 gw /kernel: an0: id mismatch: expected 178, got 224 | Mar 26 14:25:57 gw /kernel: an0: id mismatch: expected 17e, got 178 | | When these messages begin, our network connection grinds to a near-halt | (ping times of 1000-2000ms). The only way we've found to stop the | messages is to disconnect the Aironet connection, and bring the network | interface down and back up again. When it comes back up, everything is | mysteriously back to normal. | | I've tried looking through the source code, but confess to not | understanding what it is that prompts these messages to begin. Any help | | would be greatly appreciated. I've tried poring through mailing list | archives, but no one else seems to have reported a similar problem. Actually a few people have. I had a fix in my sets of patches but it seems that was omited so even though the problem was solved it it still broken. Hopefully we won't miss the fix again. Please try this patch. You will have to apply it by hand to /sys/dev/an/if_an.c since I did an X cut-n-paste. Let me know if it helps. Thanks, Doug A. *************** *** 483,494 **** } else ifp->if_opackets++; ! if (id != sc->an_rdata.an_tx_ring[sc->an_rdata.an_tx_cons]) ! printf("an%d: id mismatch: expected %x, got %x\n", ! sc->an_unit, ! sc->an_rdata.an_tx_ring[sc->an_rdata.an_tx_cons], id); - sc->an_rdata.an_tx_ring[sc->an_rdata.an_tx_cons] = 0; AN_INC(sc->an_rdata.an_tx_cons, AN_TX_RING_CNT); return; --- 484,496 ---- } else ifp->if_opackets++; ! for (i = 0; i < AN_TX_RING_CNT; i++ ) { ! if (id == sc->an_rdata.an_tx_ring[i]) { ! sc->an_rdata.an_tx_ring[i] = 0; ! break; ! } ! } AN_INC(sc->an_rdata.an_tx_cons, AN_TX_RING_CNT); return; To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200104120250.f3C2oGk29529>