[net] net: aquantia: Fix IFF_ALLMULTI flag functionality

Message ID 30bef74fcd937e168589cfdf9a148c2674742410.1533306383.git.dmitry.bogdanov@aquantia.com
State Accepted
Delegated to: David Miller
Headers show
Series
  • [net] net: aquantia: Fix IFF_ALLMULTI flag functionality
Related show

Commit Message

Igor Russkikh Aug. 8, 2018, 11:06 a.m.
From: Dmitry Bogdanov <dmitry.bogdanov@aquantia.com>

It was noticed that NIC always pass all multicast traffic to the host
regardless of IFF_ALLMULTI flag on the interface.
The rule in MC Filter Table in NIC, that is configured to accept any
multicast packets, is turning on if IFF_MULTICAST flag is set on the
interface. It leads to passing all multicast traffic to the host.
This fix changes the condition to turn on that rule by checking
IFF_ALLMULTI flag as it should.

Fixes: b21f502 ("net:ethernet:aquantia: Fix for multicast filter handling.")
Signed-off-by: Dmitry Bogdanov <dmitry.bogdanov@aquantia.com>
---
 drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

David Miller Aug. 9, 2018, 2:12 a.m. | #1
From: Igor Russkikh <igor.russkikh@aquantia.com>
Date: Wed,  8 Aug 2018 14:06:32 +0300

> From: Dmitry Bogdanov <dmitry.bogdanov@aquantia.com>
> 
> It was noticed that NIC always pass all multicast traffic to the host
> regardless of IFF_ALLMULTI flag on the interface.
> The rule in MC Filter Table in NIC, that is configured to accept any
> multicast packets, is turning on if IFF_MULTICAST flag is set on the
> interface. It leads to passing all multicast traffic to the host.
> This fix changes the condition to turn on that rule by checking
> IFF_ALLMULTI flag as it should.
> 
> Fixes: b21f502 ("net:ethernet:aquantia: Fix for multicast filter handling.")

Please use 12 digits of significance for the SHA1_ID next time.

> Signed-off-by: Dmitry Bogdanov <dmitry.bogdanov@aquantia.com>

Applied and queued up for -stable.

Patch

diff --git a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
index 956860a69797..3bdab972420b 100644
--- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
+++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
@@ -762,7 +762,7 @@  static int hw_atl_b0_hw_packet_filter_set(struct aq_hw_s *self,
 
 	hw_atl_rpfl2promiscuous_mode_en_set(self, IS_FILTER_ENABLED(IFF_PROMISC));
 	hw_atl_rpfl2multicast_flr_en_set(self,
-					 IS_FILTER_ENABLED(IFF_MULTICAST), 0);
+					 IS_FILTER_ENABLED(IFF_ALLMULTI), 0);
 
 	hw_atl_rpfl2_accept_all_mc_packets_set(self,
 					       IS_FILTER_ENABLED(IFF_ALLMULTI));