[efi] Guard against GetStatus() failing to return a NULL TX buffer
authorMichael Brown <mcb30@ipxe.org>
Wed, 11 May 2016 21:02:26 +0000 (22:02 +0100)
committerMichael Brown <mcb30@ipxe.org>
Wed, 11 May 2016 22:02:10 +0000 (23:02 +0100)
commit6164741f81fbb80d25ba3877251f4b31de3ed6a0
treeffa86f6ffa6c484d695a0557ef786bc98811c5c9
parent47931a4de53ccdeda061c59aa0919f152cf0dfdf
[efi] Guard against GetStatus() failing to return a NULL TX buffer

The UEFI specification requires the EFI_SIMPLE_NETWORK_PROTOCOL
GetStatus() method to set TxBuf to NULL if there are no transmit
buffers to recycle.

Some implementations (observed with Lan9118Dxe in EDK2) fill in TxBuf
only when there is a transmit buffer to recycle, which leads to large
numbers of "spurious TX completion" errors.

Work around this problem by initialising TxBuf to NULL before calling
the GetStatus() method.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/drivers/net/efi/snpnet.c