1
0
Fork 0
alistair23-linux/drivers/net/ethernet/broadcom
Yuval Mintz c7b7b483cc bnx2x: Don't flush multicast MACs
When ndo_set_rx_mode() is called for bnx2x, as part of process of
configuring the new MAC address filters [both unicast & multicast]
driver begins by flushing the existing configuration and then iterating
over the network device's list of addresses and configures those instead.

This has the side-effect of creating a short gap where traffic wouldn't
be properly classified, as no filters are configured in HW.
While for unicasts this is rather insignificant [as unicast MACs don't
frequently change while interface is actually running],
for multicast traffic it does pose an issue as there are multicast-based
networks where new multicast groups would constantly be removed and
added.

This patch tries to remedy this [at least for the newer adapters] -
Instead of flushing & reconfiguring all existing multicast filters,
the driver would instead create the approximate hash match that would
result from the required filters. It would then compare it against the
currently configured approximate hash match, and only add and remove the
delta between those.

Signed-off-by: Yuval Mintz <Yuval.Mintz@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-08-24 09:45:20 -07:00
..
bnx2x bnx2x: Don't flush multicast MACs 2016-08-24 09:45:20 -07:00
bnxt bnxt_en: Add new NPAR and dual media device IDs. 2016-07-25 21:43:31 -07:00
genet Revert "net: ethernet: bcmgenet: use phy_ethtool_{get|set}_link_ksettings" 2016-07-11 12:57:09 -07:00
Kconfig net: ethernet: bgmac: Add platform device support 2016-07-09 18:10:41 -04:00
Makefile net: ethernet: bgmac: Add platform device support 2016-07-09 18:10:41 -04:00
b44.c phy: Add API for {un}registering an mdio device to a bus. 2016-01-07 14:31:26 -05:00
b44.h b44: Utilize BRCM_PSEUDO_PHY_ADDR 2015-06-10 23:33:58 -07:00
bcm63xx_enet.c net: bcm63xx: avoid possible null pointer dereference 2016-08-01 13:32:51 -07:00
bcm63xx_enet.h bcm63xx_enet: add support Broadcom BCM6345 Ethernet 2013-06-13 17:22:08 -07:00
bcmsysport.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-07-06 10:35:22 -07:00
bcmsysport.h net: ethernet: bcmsysport: use phydev from struct net_device 2016-06-19 16:15:55 -07:00
bgmac-bcma-mdio.c net: ethernet: bgmac: Add platform device support 2016-07-09 18:10:41 -04:00
bgmac-bcma.c net: bgmac: support Ethernet core on BCM53573 SoCs 2016-08-18 23:36:07 -07:00
bgmac-platform.c net: ethernet: bgmac: Remove redundant dev_err call in bgmac_probe() 2016-07-13 18:07:56 -07:00
bgmac.c net: bgmac: make it clear when setting interface type to RMII 2016-08-18 23:36:07 -07:00
bgmac.h net: bgmac: support Ethernet core on BCM53573 SoCs 2016-08-18 23:36:07 -07:00
bnx2.c BNX2: free temp_stats_blk on error path 2015-10-12 19:33:46 -07:00
bnx2.h BNX2: fix a Null Pointer for stats_blk 2015-10-11 05:06:21 -07:00
bnx2_fw.h bnx2-cnic: Driver Rebranding Changes 2015-02-20 15:46:49 -05:00
cnic.c cnic: call cp->stop_hw() in cnic_start_hw() on allocation failure 2016-05-06 15:44:54 -04:00
cnic.h cnic: Rebranding cnic driver. 2014-06-25 16:27:27 -07:00
cnic_defs.h cnic: Rebranding cnic driver. 2014-06-25 16:27:27 -07:00
cnic_if.h cnic: Add the interfaces to get FC-NPIV table. 2015-08-06 21:54:12 -07:00
sb1250-mac.c treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
tg3.c tg3: Report the correct number of RSS queues through tg3_get_rxnfc 2016-08-03 11:56:18 -07:00
tg3.h mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00