Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 7 Jun 2001 12:11:43 -0700
From:      Richard Johnson <raj@cisco.com>
To:        Tom Gwilt <tgwilt@suite224.net>
Cc:        freebsd-mobile@FreeBSD.ORG
Subject:   Re: Cisco 350
Message-ID:  <15135.53743.221860.713885@kitab.cisco.com>
In-Reply-To: <Pine.GSO.4.10.10106071358510.1689-100000@mike>
References:  <Pine.GSO.4.10.10106071358510.1689-100000@mike>

next in thread | previous in thread | raw e-mail | index | archive | help
I thought 4.3 had this fix, but maybe not.  I think Doug Abrisko's
fixes (http://www.ambrisko.com:/doug/an/) include it, however.  At any
rate, I think you need something like this:

*** if_an.c.no-local-fixes	Thu Nov 30 00:53:55 2000
--- if_an.c	Thu Nov 30 02:14:13 2000
***************
*** 470,475 ****
--- 470,476 ----
  {
  	struct ifnet		*ifp;
  	int			id;
+ 	int			i;
  
  	/* TX DONE enable lan monitor DJA
  	   an_enable_sniff();
***************
*** 487,498 ****
  	} 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;
--- 488,500 ----
  	} 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-mobile" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?15135.53743.221860.713885>