diff mbox series

[net-next] hv_netvsc: Correct filter setting for multicast/broadcast

Message ID 1520601923-26931-1-git-send-email-mgamal@redhat.com
State Not Applicable, archived
Delegated to: David Miller
Headers show
Series [net-next] hv_netvsc: Correct filter setting for multicast/broadcast | expand

Commit Message

Mohammed Gamal March 9, 2018, 1:25 p.m. UTC
Commit 009f766 intended to filter multicast/broadcast, however
the NDIS filter wasn't set properly in non-promiscuous modes,
which resulted in issues like DHCP timeouts.
This patch sets the filter flags correctly.

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

Signed-off-by: Mohammed Gamal <mgamal@redhat.com>
---
 drivers/net/hyperv/rndis_filter.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Sergei Shtylyov March 9, 2018, 6:37 p.m. UTC | #1
Hello!

On 03/09/2018 04:25 PM, Mohammed Gamal wrote:

> Commit 009f766 intended to filter multicast/broadcast, however

   At least 12 digits needed here, and the summary line too, just like you do
for the Fixes: tag.

> the NDIS filter wasn't set properly in non-promiscuous modes,
> which resulted in issues like DHCP timeouts.
> This patch sets the filter flags correctly.
> 
> Fixes: 009f766 ("hv_netvsc: filter multicast/broadcast")
> 
> Signed-off-by: Mohammed Gamal <mgamal@redhat.com>
[...]
MBR, Sergei
Sergei Shtylyov March 9, 2018, 6:38 p.m. UTC | #2
On 03/09/2018 09:37 PM, Sergei Shtylyov wrote:

>> Commit 009f766 intended to filter multicast/broadcast, however
> 
>    At least 12 digits needed here, and the summary line too, just like you do
> for the Fixes: tag.
> 
>> the NDIS filter wasn't set properly in non-promiscuous modes,
>> which resulted in issues like DHCP timeouts.
>> This patch sets the filter flags correctly.
>>
>> Fixes: 009f766 ("hv_netvsc: filter multicast/broadcast")

   12 digits needed here as well.

>>
>> Signed-off-by: Mohammed Gamal <mgamal@redhat.com>

> [...]

MBR, Sergei
diff mbox series

Patch

diff --git a/drivers/net/hyperv/rndis_filter.c b/drivers/net/hyperv/rndis_filter.c
index 8927c48..411a3ae 100644
--- a/drivers/net/hyperv/rndis_filter.c
+++ b/drivers/net/hyperv/rndis_filter.c
@@ -861,9 +861,9 @@  static void rndis_set_multicast(struct work_struct *w)
 		filter = NDIS_PACKET_TYPE_PROMISCUOUS;
 	} else {
 		if (flags & IFF_ALLMULTI)
-			flags |= NDIS_PACKET_TYPE_ALL_MULTICAST;
+			filter |= NDIS_PACKET_TYPE_ALL_MULTICAST;
 		if (flags & IFF_BROADCAST)
-			flags |= NDIS_PACKET_TYPE_BROADCAST;
+			filter |= NDIS_PACKET_TYPE_BROADCAST;
 	}
 
 	rndis_filter_set_packet_filter(rdev, filter);