OpenCloudOS-Kernel/drivers/net
Yevgeny Petrilin 6d19993788 net/mlx4_en: Re-design multicast attachments flow
Currently, for every change in the net device multicast list, the driver
detaches all the addresses from the HW device, and then attaches the
updated list. This behavior is wrong from two aspects: first, it causes
a load of firmware commands and second, there is period of time where
the correct addresses are not attached, which turned into packet loss.

To improve - a copy of the multicast list is saved by the driver. For
every change in the multicast list, the multicast list copy is used
to find the delta between those two lists and add or remove multicast
addresses as needed.

Reported-by: Shawn Bohrer <sbohrer@rgmadvisors.com>
Cc: Shawn Bohrer <sbohrer@rgmadvisors.com>
Signed-off-by: Hadar Hen Zion <hadarh@mellanox.co.il>
Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-07-07 16:23:05 -07:00
..
appletalk drivers: net: Remove casts to same type 2012-06-06 09:31:33 -07:00
arcnet
bonding Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-06-25 15:50:32 -07:00
caif caif-hsi: Fix merge issues. 2012-06-29 00:46:53 -07:00
can Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-06-28 17:37:00 -07:00
cris
dsa
ethernet net/mlx4_en: Re-design multicast attachments flow 2012-07-07 16:23:05 -07:00
fddi drivers: net: Remove casts to same type 2012-06-06 09:31:33 -07:00
hamradio drivers: net: Remove casts to same type 2012-06-06 09:31:33 -07:00
hippi
hyperv Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-06-06 15:06:41 -07:00
irda drivers: net: Remove casts to same type 2012-06-06 09:31:33 -07:00
phy phy: add the EEE support and the way to access to the MMD registers. 2012-07-01 03:34:50 -07:00
plip
ppp ppp: avoid false drop_monitor false positives 2012-05-19 02:32:30 -04:00
slip drivers: net: Remove casts to same type 2012-06-06 09:31:33 -07:00
team team: use IFF_LIVE_ADDR_CHANGE priv_flag 2012-06-30 01:08:00 -07:00
usb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-06-28 17:37:00 -07:00
vmxnet3 drivers: net: Remove casts to same type 2012-06-06 09:31:33 -07:00
wan drivers: net: Remove casts to same type 2012-06-06 09:31:33 -07:00
wimax drivers: net: Remove casts to same type 2012-06-06 09:31:33 -07:00
wireless Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2012-06-29 12:42:14 -04:00
xen-netback xen/netback: only non-freed SKB is queued into tx_queue 2012-06-29 00:50:20 -07:00
Kconfig tokenring: delete all remaining driver support 2012-05-15 20:23:16 -04:00
LICENSE.SRC
Makefile tokenring: delete all remaining driver support 2012-05-15 20:23:16 -04:00
Space.c drivers/net: delete all code/drivers depending on CONFIG_MCA 2012-05-17 16:37:41 -04:00
dummy.c dummy: use IFF_LIVE_ADDR_CHANGE priv_flag 2012-06-30 01:08:00 -07:00
eql.c
ifb.c
loopback.c
macvlan.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-05-16 22:17:37 -04:00
macvtap.c macvtap: use prepare_to_wait/finish_wait to ensure mb 2012-06-07 13:18:54 -07:00
mdio.c
mii.c
netconsole.c
rionet.c
sb1000.c
sungem_phy.c
tun.c drivers/net: Convert compare_ether_addr to ether_addr_equal 2012-05-10 23:33:01 -04:00
veth.c
virtio_net.c virtio_net: use IFF_LIVE_ADDR_CHANGE priv_flag 2012-06-30 01:08:00 -07:00
xen-netfront.c xen/netfront: teardown the device before unregistering it. 2012-06-27 01:25:41 -07:00