--- upstream/dynamips-0.2.6-RC2/dev_dec21140.c 2007/10/06 16:05:34 3 +++ upstream/dynamips-0.2.6-RC3/dev_dec21140.c 2007/10/06 16:06:49 4 @@ -206,11 +206,6 @@ n_eth_hdr_t *hdr = (n_eth_hdr_t *)pkt; int i; - /* Ignore traffic sent by us */ - for(i=0;imac_addr_count;i++) - if (!memcmp(&d->mac_addr[i],&hdr->saddr,N_ETH_ALEN)) - return(FALSE); - /* Accept systematically frames if we are running is promiscuous mode */ if (d->csr[6] & DEC21140_CSR6_PROMISC) return(TRUE); @@ -434,8 +429,9 @@ break; case 8: - /* CSR8 is cleared when read */ + /* CSR8 is cleared when read (missed frame counter) */ d->csr[reg] = 0; + *data = 0; break; default: @@ -510,7 +506,7 @@ return(nrxd_addr); } -/* Read an RX descriptor */ +/* Read a RX descriptor */ static void rxdesc_read(struct dec21140_data *d,m_uint32_t rxd_addr, struct rx_desc *rxd) { @@ -729,7 +725,7 @@ /* Copy the current txring descriptor */ tx_start = d->tx_current; ptxd = &txd0; - txdesc_read(d,d->tx_current,ptxd); + txdesc_read(d,tx_start,ptxd); /* If we don't own the first descriptor, we cannot transmit */ if (!(txd0.tdes[0] & DEC21140_TXDESC_OWN))