mirror of https://github.com/ipxe/ipxe.git
[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>pull/54/head^2
parent
47931a4de5
commit
6164741f81
|
@ -191,6 +191,7 @@ static void snpnet_poll_tx ( struct net_device *netdev ) {
|
|||
int rc;
|
||||
|
||||
/* Get status */
|
||||
txbuf = NULL;
|
||||
if ( ( efirc = snp->snp->GetStatus ( snp->snp, &irq, &txbuf ) ) != 0 ) {
|
||||
rc = -EEFI ( efirc );
|
||||
DBGC ( snp, "SNP %s could not get status: %s\n",
|
||||
|
|
Loading…
Reference in New Issue