Skip to contentSkip to conversation

hv_netvsc: enable multicast if necessary

PATCH Applied Stephen Hemminger 2 participants 2 messages Mar 27, 2018 – Mar 29, 2018

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 hv_netvsc: enable multicast if necessary

My recent change to netvsc drive in how receive flags are handled broke multicast. The Hyper-v/Azure virtual interface there is not a multicast filter list, filtering is only all or none. The driver must enable all multicast if any multicast address is present.

Fixes 009f766ca238 ("hv_netvsc: filter multicast/broadcast")
---
 drivers/net/hyperv/rndis_filter.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/hyperv/rndis_filter.c +1 -1
index 00ec80c23fe5..8799b0590adc 100644
@@ -864,7 +864,7 @@ static void rndis_set_multicast(struct work_struct *w)
 	if (flags & IFF_PROMISC) {
 		filter = NDIS_PACKET_TYPE_PROMISCUOUS;
 	} else {
-		if (flags & IFF_ALLMULTI)
+		if (!netdev_mc_empty(rdev->ndev) || (flags & IFF_ALLMULTI))
 			filter |= NDIS_PACKET_TYPE_ALL_MULTICAST;
 		if (flags & IFF_BROADCAST)
 			filter |= NDIS_PACKET_TYPE_BROADCAST;
Signature · 1 line
2.16.2
maintainer Applied
#1 lore raw

From: Stephen Hemminger <[email protected]>
Date: Tue, 27 Mar 2018 11:28:48 -0700

Quoted 7 lines

My recent change to netvsc drive in how receive flags are handled broke multicast. The Hyper-v/Azure virtual interface there is not a multicast filter list, filtering is only all or none. The driver must enable all multicast if any multicast address is present.

Fixes 009f766ca238 ("hv_netvsc: filter multicast/broadcast")

Applied, thanks Stephen.