net: aquantia: Fix IFF_ALLMULTI flag functionality
authorDmitry Bogdanov <dmitry.bogdanov@aquantia.com>
Wed, 8 Aug 2018 11:06:32 +0000 (14:06 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 Aug 2018 05:46:09 +0000 (07:46 +0200)
[ Upstream commit 11ba961c916127651e12af6cad3891f8aeb25aa9 ]

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: b21f502f84be ("net:ethernet:aquantia: Fix for multicast filter handling.")
Signed-off-by: Dmitry Bogdanov <dmitry.bogdanov@aquantia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c

index 36fddb199160b064f0d2c38363eb7e192437ed2c..f4b3554b0b67bcff2c27318e1ce1c5c1c3fb6032 100644 (file)
@@ -752,7 +752,7 @@ static int hw_atl_b0_hw_packet_filter_set(struct aq_hw_s *self,
 
        rpfl2promiscuous_mode_en_set(self, IS_FILTER_ENABLED(IFF_PROMISC));
        rpfl2multicast_flr_en_set(self,
-                                 IS_FILTER_ENABLED(IFF_MULTICAST), 0);
+                                 IS_FILTER_ENABLED(IFF_ALLMULTI), 0);
 
        rpfl2_accept_all_mc_packets_set(self,
                                        IS_FILTER_ENABLED(IFF_ALLMULTI));