david/ipxe
david
/
ipxe
Archived
1
0
Fork 0
This repository has been archived on 2020-12-06. You can view files and clone it, but cannot push or open issues or pull requests.
ipxe/src/net
Michael Brown 97f0f56a34 [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>
2017-09-05 12:30:04 +01:00
..
80211 [802.11] Remove redundant NULL pointer check after dereference 2017-03-21 14:01:08 +02:00
infiniband [block] Describe all SAN devices via ACPI tables 2017-03-28 19:12:48 +03:00
oncrpc [nfs] Rewrite NFS URI handling 2014-05-18 21:53:39 +01:00
tcp [iscsi] Always send FirstBurstLength parameter 2017-05-03 13:01:11 +01:00
udp [slam] Avoid NULL pointer dereference in slam_pull_value() 2017-03-21 14:57:36 +02:00
aoe.c [block] Describe all SAN devices via ACPI tables 2017-03-28 19:12:48 +03:00
arp.c [arp] Validate length of ARP packet 2016-03-12 01:24:03 +00:00
dhcpopts.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:50:42 +00:00
dhcppkt.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
eapol.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
eth_slow.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 16:35:29 +00:00
ethernet.c [ethernet] Make LACP support configurable at build time 2016-04-18 10:08:46 +01:00
fakedhcp.c [pxe] Populate ciaddr in fake PXE Boot Server ACK packet 2015-09-01 21:24:02 +01:00
fc.c [build] Fix the REQUIRE_SYMBOL mechanism 2015-03-05 00:59:38 +00:00
fcels.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
fcns.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
fcoe.c [time] Allow timer to be selected at runtime 2017-01-26 08:17:37 +00:00
fcp.c [block] Describe all SAN devices via ACPI tables 2017-03-28 19:12:48 +03:00
fragment.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
icmp.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
icmpv4.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
icmpv6.c [ipv6] Disambiguate received ICMPv6 errors 2015-05-11 12:45:14 +01:00
infiniband.c [infiniband] Return status code from ib_create_mi() 2017-03-22 11:18:23 +02:00
iobpad.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
ipv4.c [ipv4] Accept unicast packets for the local network broadcast address 2017-01-22 09:12:52 +00:00
ipv6.c [ipv6] Allow for multiple routers 2016-07-25 15:20:22 +01:00
ndp.c [ipv6] Rename ipv6_scope to ipv6_settings_scope 2016-07-21 15:47:45 +01:00
neighbour.c [neighbour] Return success when deferring a packet 2015-05-20 15:29:36 +01:00
netdev_settings.c [netdevice] Limit MTU by hardware maximum frame length 2017-01-25 14:55:09 +00:00
netdevice.c [netdevice] Cancel all pending transmissions on any transmit error 2017-09-05 12:30:04 +01:00
nullnet.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
pccrc.c [peerdist] Include trimmed range within content information block 2015-07-28 15:22:26 +01:00
pccrd.c [peerdist] Add support for constructing and decoding discovery messages 2015-07-28 16:09:14 +01:00
peerblk.c [peerdist] Avoid NULL pointer dereference for plaintext blocks 2015-09-29 01:24:36 +01:00
peerdisc.c [build] Return const char * from uuid_ntoa() 2017-01-22 13:45:00 +00:00
peerdist.c [peerdist] Add support for PeerDist (aka BranchCache) HTTP content encoding 2015-08-17 13:24:40 +01:00
peermux.c [peerdist] Add block download multiplexer 2015-08-17 13:24:39 +01:00
ping.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
rarp.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
retry.c [retry] Colourise debug output 2015-03-05 11:25:54 +00:00
rndis.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
socket.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
stp.c [time] Allow timer to be selected at runtime 2017-01-26 08:17:37 +00:00
tcp.c [tcp] Use correct length for memset() 2017-03-22 15:11:05 +02:00
tcpip.c [netdevice] Limit MTU by hardware maximum frame length 2017-01-25 14:55:09 +00:00
tls.c [tls] Support RFC5746 secure renegotiation 2017-07-04 19:54:34 +01:00
udp.c [tcpip] Avoid generating positive zero for transmitted UDP checksums 2015-09-10 14:46:54 +01:00
validator.c [crypto] Generalise X.509 "valid" field to a "flags" field 2016-08-25 15:41:57 +01:00
vlan.c [netdevice] Allow network devices to disclaim IRQ support at runtime 2015-07-28 15:14:40 +01:00