HomeFreeBSD

- If the OACTIVE flag is set on entry to xl_start(), check to see if the

Description

  • If the OACTIVE flag is set on entry to xl_start(), check to see if the transmitter is wedged. If so, try to unwedge it, process any descriptors that might need to be free()d, then proceed.
  • Disable the 'background' autonegotiation performed during bootstrap. What happens currently is that the driver starts an autoneg session, the sets a timeout in the ifnet structure and returns. Later, when the timer expires, the watchdog routine calls the autoneg handler to check the results of the session. The problem with this is that the session may not complete until some point after we have started to mount NFS filesystems, which can cause the mounts to fail. This is especially troublesome if booting with an NFS rootfs: we need the interface up and running before reaching the mountroot() code.

    The default behavior now is to do the autoneg synchronously, i.e. wait 5 seconds for the autoneg to complete before exiting the driver attach routine. People who want the old behavior can compile the driver with XL_BACKGROUND_AUTONEG #defined. This has no effect on autoneg sessions initiated by 'ifconfig xl0 media autoselect.'

    This slows the probe down a little, but it's either that or botching NFS mounts at bootup.
  • If xl_setmode_mii() is called and there's an autoneg session in progress, cancel it, _then_ set the modes.

Details

Provenance
Bill Paul <wpaul@FreeBSD.org>Authored on Sep 8 1998, 11:42 PM
Parents
rGeeded4d82eb8: Add new atapi-cd driver that supports atapi CD-R/RW drives.
Branches
Unknown
Tags
Unknown

Event Timeline