From owner-freebsd-hackers Wed Apr 11 19:50:32 2001 Delivered-To: freebsd-hackers@freebsd.org Received: from ambrisko.com (adsl-216-103-208-74.dsl.snfc21.pacbell.net [216.103.208.74]) by hub.freebsd.org (Postfix) with ESMTP id BFAF937B42C for ; Wed, 11 Apr 2001 19:50:20 -0700 (PDT) (envelope-from ambrisko@ambrisko.com) Received: (from ambrisko@localhost) by ambrisko.com (8.11.3/8.11.2) id f3C2oGk29529; Wed, 11 Apr 2001 19:50:16 -0700 (PDT) (envelope-from ambrisko) From: Doug Ambrisko Message-Id: <200104120250.f3C2oGk29529@ambrisko.com> Subject: Re: problem with Aironet driver In-Reply-To: <3AD3303D.7E01528D@tovaris.com> "from Andria Thomas at Apr 10, 2001 12:09:33 pm" To: Andria Thomas Date: Wed, 11 Apr 2001 19:50:16 -0700 (PDT) Cc: hackers@FreeBSD.ORG X-Mailer: ELM [version 2.4ME+ PL82 (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG 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