summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgnat Korchagin2019-12-13 17:17:58 +0100
committerMichael Brown2019-12-16 11:46:04 +0100
commitea832529a5d2ac7c82f68b1ce86cf272f0cdf2cb (patch)
tree4b8ac213b096ce7bcdcd98b594c28812c5aedb9a
parent[snp] Try promiscuous multicast receive filter if the regular one fails (diff)
downloadipxe-ea832529a5d2ac7c82f68b1ce86cf272f0cdf2cb.tar.gz
ipxe-ea832529a5d2ac7c82f68b1ce86cf272f0cdf2cb.tar.xz
ipxe-ea832529a5d2ac7c82f68b1ce86cf272f0cdf2cb.zip
[snp] Set EFI_SIMPLE_NETWORK_RECEIVE_MULTICAST bit as per UEFI spec
According to UEFI specification 2.8 p 24.1 we must set the EFI_SIMPLE_NETWORK_RECEIVE_MULTICAST bit in the "Disable" mask, when "ResetMCastFilter" is TRUE. Signed-off-by: Ignat Korchagin <ignat@cloudflare.com> Split-by: Michael Brown <mcb30@ipxe.org> Signed-off-by: Michael Brown <mcb30@ipxe.org>
-rw-r--r--src/drivers/net/efi/snpnet.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/drivers/net/efi/snpnet.c b/src/drivers/net/efi/snpnet.c
index 44bc8328..536248bc 100644
--- a/src/drivers/net/efi/snpnet.c
+++ b/src/drivers/net/efi/snpnet.c
@@ -313,7 +313,8 @@ static int snpnet_rx_filters ( struct net_device *netdev ) {
/* Try possible receive filters in turn */
for ( i = 0; i < ( sizeof ( filters ) / sizeof ( filters[0] ) ); i++ ) {
efirc = snp->snp->ReceiveFilters ( snp->snp, filters[i],
- 0, TRUE, 0, NULL );
+ EFI_SIMPLE_NETWORK_RECEIVE_MULTICAST, TRUE,
+ 0, NULL );
if ( efirc == 0 )
return 0;
rc = -EEFI ( efirc );