HomeFreeBSD

Clean up mxge's use of callouts as pointed out by jhb,
rS180567Unpublished

Unpublished Commit ยท Learn More

No further details are available.

Description

Clean up mxge's use of callouts as pointed out by jhb,
and handle NIC hardware watchdog resets.

  • remove buggy code at the top of mxge_tick() which tried to detect a race which is already detected in the kernel's callout code.
  • move callout_stop() and callout_reset() into mxge_close() mxge_open() rather than doing the callout manipulation all over the place.
  • use callout_drain(), rather than callout_stop() to prevent a potential race between mxge_tick() and mxge_detach() which could lead to softclock using a destroyed mutex
  • restructure the mxge_tick() and mxge_watchdog_reset() routines to avoid resetting a callout, and then immediately stopping it if the watchdog reset routine is called, and fails.
  • enable the driver to handle NIC hardware watchdog resets by restoring the NIC's PCI config space, which is lost when the NIC hardware watchdog triggers.

Reviewed by: jhb (previus version)

Details

Provenance
gallatinAuthored on
Parents
rS180566: Don't set PACKAGE_BUILDING while installing packages.
Branches
Unknown
Tags
Unknown

Event Timeline