Skip site navigation (1)Skip section navigation (2)
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>