diff options
author | dg <dg@FreeBSD.org> | 1997-09-29 11:27:43 +0000 |
---|---|---|
committer | dg <dg@FreeBSD.org> | 1997-09-29 11:27:43 +0000 |
commit | 179a5ad3650635bf5d0cfaf2f6ba732850dcb9b5 (patch) | |
tree | d4cb28bdbf820d7e55e013a6fbaf2e3a47277fa9 /sys/pci/if_fxpvar.h | |
parent | c04fd86ec9ea4174b8f4e210a854dd3291f0c442 (diff) | |
download | FreeBSD-src-179a5ad3650635bf5d0cfaf2f6ba732850dcb9b5.zip FreeBSD-src-179a5ad3650635bf5d0cfaf2f6ba732850dcb9b5.tar.gz |
Work around a bug in the 82557 NIC where the receiver will lock up
if it is in 10Mbps mode and gets certain types of garbage prior to
the packet header. The work-around involves reprogramming the
multicast filter if nothing is received in some number of seconds
(currently set at 15). As a side effect, implemented complete support
for multicasting rather than the previous 'receive all multicasts'
hack, since we now have the ability to program the filter table.
Fixed a serious bug which crept in with the timeout() changes;
the cookie was only saved on the first timeout() call in fxp_init()
and wasn't updated in the most common place in fxp_stats_update()
when the timeout was rescheduled. This bug would have resulted in
an eventual panic if fxp_stop() was called (which happens when any
interface flags are changed, for example).
Fixed a bug in Alpha support that would have caused the TxCB
descriptor chain to span a page boundry, causing serious problems
if the pages didn't happen to be contiguous.
Removed some gratuitous bit masking that was left over from an
older implementation.
Fixed a bug where too much was copied from the configuration
template, spilling over into memory that followed it.
Fixed handling of if_timer...it was cleared too early in some cases.
Diffstat (limited to 'sys/pci/if_fxpvar.h')
-rw-r--r-- | sys/pci/if_fxpvar.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/pci/if_fxpvar.h b/sys/pci/if_fxpvar.h index 81789d6..b362d13 100644 --- a/sys/pci/if_fxpvar.h +++ b/sys/pci/if_fxpvar.h @@ -27,7 +27,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: if_fxpvar.h,v 1.1 1997/09/05 10:23:58 davidg Exp $ + * $Id: if_fxpvar.h,v 1.2 1997/09/21 22:02:09 gibbs Exp $ */ /* @@ -59,6 +59,10 @@ struct fxp_softc { int phy_primary_addr; /* address of primary PHY */ int phy_primary_device; /* device type of primary PHY */ int phy_10Mbps_only; /* PHY is 10Mbps-only device */ + int rx_idle_secs; /* # of seconds RX has been idle */ + int need_mcsetup; /* multicast filter needs programming */ + int all_mcasts; /* receive all multicasts */ + struct fxp_cb_mcs *mcsp; /* Pointer to mcast setup descriptor */ }; /* Macros to ease CSR access. */ |