summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
authorMichael Brown2017-09-05 13:21:11 +0200
committerMichael Brown2017-09-05 13:30:04 +0200
commit97f0f56a34e32e705d3eee18526222f43fc88e6e (patch)
tree4760c8f6b536135bccdfdffb78887d96bc072891 /src/core
parent[efi] Raise TPL when calling UNDI entry point (diff)
downloadipxe-97f0f56a34e32e705d3eee18526222f43fc88e6e.tar.gz
ipxe-97f0f56a34e32e705d3eee18526222f43fc88e6e.tar.xz
ipxe-97f0f56a34e32e705d3eee18526222f43fc88e6e.zip
[netdevice] Cancel all pending transmissions on any transmit error
Some external code (such as the UEFI UNDI driver for the Realtek USB NIC on a Microsoft Surface Book) will block during transmission attempts and can take several seconds to report a transmit error. If there is a large queue of pending transmissions, then the accumulated time from a series of such failures can easily exceed the EFI watchdog timeout, resulting in what appears to be a system lockup followed by a reboot. Work around this problem by immediately cancelling any pending transmissions as soon as any transmit error occurs. The only expected transmit error under normal operation is ENOBUFS arising when the hardware transmit queue is full. By definition, this can happen only for drivers that do not utilise deferred transmissions, and so this new behaviour will not affect these drivers. Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/core')
0 files changed, 0 insertions, 0 deletions