Now
MAIN commitmail json YAML
src/sys/dev/pci/ixgbe/ixgbe.c@1.223
/
diff
/
nxr@1.223
src/sys/dev/pci/ixgbe/ixgbe.h@1.63 / diff / nxr@1.63
src/sys/dev/pci/ixgbe/ixgbe.h@1.63 / diff / nxr@1.63
- Fix locking problem with optics module interrupts: ifmedia_add()
may block on memory allocation, and so it cannot be safely done from
a softint nor can it be done while holding a spin lock. Fix this by
using a workqueue rather than a softint, and hold the IFNET_LOCK
across the entire handler, and the CORE_LOCK only across the code that
needs to serialize access to the hardware state.
- Use ifmedia_fini().
Tested in a variety of devices by msaitoh@. (Thanks!)
may block on memory allocation, and so it cannot be safely done from
a softint nor can it be done while holding a spin lock. Fix this by
using a workqueue rather than a softint, and hold the IFNET_LOCK
across the entire handler, and the CORE_LOCK only across the code that
needs to serialize access to the hardware state.
- Use ifmedia_fini().
Tested in a variety of devices by msaitoh@. (Thanks!)