linux/drivers
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>
History 2012-07-07 16:23:05 -07:00
..
accessibility vt:tackle kbd_table 2012-03-08 10:50:35 -08:00
acpi Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux 2012-06-30 11:11:58 -07:00
amba arm-soc: driver specific updates 2012-05-26 12:22:27 -07:00
ata Viresh has moved 2012-06-20 14:39:36 -07:00
atm solos-pci: Fix DMA support 2012-05-24 16:22:53 -04:00
auxdisplay Fix common misspellings 2011-03-31 11:26:23 -03:00
base PM / Sleep: Prevent waiting forever on asynchronous suspend after abort 2012-06-24 23:31:09 +02:00
bcma bcma: define some additional cores IDs 2012-06-27 15:23:16 -04:00
block floppy: cancel any pending fd_timeouts before adding a new one 2012-07-03 15:51:22 -07:00
bluetooth Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless 2012-06-29 12:07:37 -04:00
cdrom powerpc: Remove some of the legacy iSeries specific device drivers 2012-03-16 09:28:05 +11:00
char Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2012-06-18 12:20:36 -07:00
clk clk: fix parent validation in __clk_set_parent() 2012-07-03 12:05:14 -07:00
clocksource clocksource: sh_tmu: Use clockevents_config_and_register(). 2012-06-11 17:10:16 +09:00
connector netlink: add netlink_kernel_cfg parameter to netlink_kernel_create 2012-06-29 16:46:02 -07:00
cpufreq ARM: ux500: core U9540 support 2012-05-02 00:25:13 +02:00
cpuidle cpuidle: Use kick_all_cpus_sync() 2012-05-08 12:35:06 +02:00
crypto arm-soc: clock driver changes 2012-05-26 12:42:29 -07:00
dca drivers/dca: Add export.h for THIS_MODULE to dca-sysfs.c 2011-10-31 19:31:43 -04:00
devfreq Power management updates for 3.5 2012-05-23 14:07:06 -07:00
dio m68k: don't export static inline functions 2009-12-06 11:18:28 +01:00
dma Merge branch 'fixes' of git://git.infradead.org/users/vkoul/slave-dma 2012-06-20 22:12:52 -07:00
edac edac: Do alignment logic properly in edac_align_ptr() 2012-06-11 12:43:16 -03:00
eisa eisa/pci_eisa.c: fix BUG introduced by 005bdad7b8 2011-08-04 06:32:51 -10:00
extcon extcon: max8997: Add missing kfree for info->edev in max8997_muic_remove() 2012-06-18 16:30:42 -07:00
firewire IEEE 1394 (FireWire) subsystem updates post v3.4: 2012-05-24 12:57:47 -07:00
firmware efivars: Improve variable validation 2012-05-03 17:19:19 -07:00
gpio gpio/samsung: fix the typo 'exynos5_xxx' instead of 'exonys5_xxx' 2012-06-03 21:21:01 -07:00
gpu drm/i915: kick any firmware framebuffers before claiming the gtt 2012-07-03 11:18:48 +01:00
hid Merge branch 'upstream-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2012-06-26 11:23:41 -07:00
hsi HSI: hsi_char: Remove max_data_size from sysfs 2012-04-23 14:23:32 +03:00
hv Driver core pull for 3.5-rc1 2012-05-22 16:02:13 -07:00
hwmon Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-06-29 10:29:54 -07:00
hwspinlock Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-08 18:34:16 -08:00
i2c i2c: Add generic I2C multiplexer using pinctrl API 2012-06-04 16:49:43 +02:00
ide drivers/ide/ide-cs.c: adjust suspicious bit operation 2012-06-12 15:51:41 -07:00
idle simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
ieee802154 drivers/ieee802154/at231rf230: remove unused return status 2012-07-05 03:11:15 -07:00
iio iio: drop wrong reference from Kconfig 2012-06-14 17:28:46 -07:00
infiniband ipoib: Need to do dst_neigh_lookup_skb() outside of priv->lock. 2012-07-05 21:08:05 -07:00
input i2c: Split I2C_M_NOSTART support out of I2C_FUNC_PROTOCOL_MANGLING 2012-05-30 10:55:34 +02:00
iommu iommu/amd: Fix deadlock in ppr-handling error path 2012-06-04 12:47:44 +02:00
isdn Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-05-24 11:54:29 -07:00
leds leds: Make LEDS_ASIC3 and LEDS_RENESAS_TPU depend on LEDS_CLASS=y 2012-06-12 10:56:25 +08:00
lguest lguest: Make sure interrupt is allocated ok by lguest_setup_irq 2012-01-12 15:44:47 +10:30
macintosh powerpc/windfarm: Fix crash on SMU based machine after i2c conversion 2012-05-09 10:58:21 +10:00
md md - fix build error in previous patch. 2012-07-03 18:05:35 -07:00
media Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2012-06-25 14:53:09 -07:00
memory memory: tegra{20,30}-mc: Remove empty *_remove() 2012-05-14 12:52:52 -07:00
memstick memstick: remove the second argument of k[un]map_atomic() 2012-03-20 21:48:19 +08:00
message Merge branch 'akpm' (Andrew's patch-bomb) 2012-05-31 18:10:18 -07:00
mfd Viresh has moved 2012-06-20 14:39:36 -07:00
misc misc: mei: set WDIOF_ALARMONLY on mei watchdog 2012-06-13 15:34:31 -07:00
mmc Revert "mmc: omap_hsmmc: Enable Auto CMD12" 2012-06-26 16:10:30 -04:00
mtd Fix the debugfs regression - we never enable it because incorrect 2012-06-28 11:41:43 -07:00
net net/mlx4_en: Re-design multicast attachments flow 2012-07-07 16:23:05 -07:00
nfc NFC: Monitor pn533 target mode 2012-06-04 21:34:34 +02:00
nubus Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
of netdev/phy/of: Handle IEEE802.3 clause 45 Ethernet PHYs in of_mdiobus_register() 2012-06-27 21:23:24 -07:00
oprofile oprofile: perf: use NR_CPUS instead or nr_cpumask_bits for static array 2012-06-21 16:15:11 +02:00
parisc Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-05-22 19:22:50 -07:00
parport Driver core pull for 3.5-rc1 2012-05-22 16:02:13 -07:00
pci USB: add NO_D3_DURING_SLEEP flag and revert 151b612847 2012-06-13 13:11:39 -07:00
pcmcia pcmcia: add driver for hx4700 2012-05-07 09:56:39 +08:00
pinctrl Merge branch 'akpm' (Andrew's patch-bomb) 2012-06-20 14:41:57 -07:00
platform drivers/platform/x86/acerhdf.c: correct Boris' mail address 2012-06-07 14:43:55 -07:00
pnp Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux 2012-03-30 16:45:39 -07:00
power A bunch of fixes for v3.5, nothing extraordinary. 2012-05-31 12:10:15 -07:00
pps pps: class_create() returns an ERR_PTR, not NULL 2012-03-05 15:49:43 -08:00
ps3 drivers/ps3: Fix checkpatch warnings in ps3av.c 2012-04-24 18:18:01 -07:00
ptp Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-05-22 19:22:50 -07:00
rapidio rapidio/tsi721: add DMA engine support 2012-05-31 17:49:31 -07:00
regulator regulator: palmas: fix regmap offsets for enable/disable 2012-06-23 11:37:28 +01:00
remoteproc remoteproc/omap: fix dev_err typo 2012-06-17 10:31:03 +03:00
rpmsg rpmsg: fix build warning when dma_addr_t is 64-bit 2012-03-04 13:43:41 +02:00
rtc Merge branches 'bugfix-battery', 'bugfix-misc', 'bugfix-rafael', 'bugfix-turbostat', 'bugfix-video' and 'workaround-pss' into release 2012-06-04 00:48:41 -04:00
s390 qeth: Convert over to dst_neigh_lookup_skb(). 2012-07-05 01:09:43 -07:00
sbus Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
scsi cxgb3: Convert t3_l2t_get() over to dst_neigh_lookup(). 2012-07-05 02:29:40 -07:00
sfi drivers/sfi: sfi_acpi.c needs sysfs.h 2011-10-31 19:31:57 -04:00
sh sh: intc: Kill off special reservation interface. 2012-05-22 19:07:55 +09:00
sn include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
spi SPI: fix over-eager devm_xxx() conversion 2012-06-18 11:27:04 +01:00
ssb ssb: add missing PCI ID for b/g/n single band BCM4322 2012-06-11 14:59:44 -04:00
staging netlink: add netlink_kernel_cfg parameter to netlink_kernel_create 2012-06-29 16:46:02 -07:00
target target: Return error to initiator if SET TARGET PORT GROUPS emulation fails 2012-06-12 20:12:25 -07:00
tc include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
thermal thermal: Fix for setting the thermal zone mode to enable/disable 2012-03-22 01:10:18 -04:00
tty Serial driver fixes for 3.5-rc4 2012-06-20 15:13:13 -07:00
uio uio_pdrv_genirq: get irq through platform resource if not set otherwise 2012-05-15 08:44:58 -07:00
usb USB: CP210x Add 10 Device IDs 2012-06-26 16:14:34 -07:00
uwb uwb: fix error handling 2012-04-18 13:15:51 -07:00
vhost vhost: use USER_DS in vhost_worker thread 2012-06-26 21:10:56 -07:00
video fbdev fixes for 3.5 2012-06-16 16:59:05 -07:00
virt drivers/virt: add ioctl for 32-bit compat on 64-bit to fsl-hv-manager 2011-10-14 02:56:02 -05:00
virtio virtio-mmio: Devices parameter parsing 2012-05-22 12:16:15 +09:30
vlynq vlynq: Convert irq functions 2011-03-28 19:33:04 +02:00
vme VME: Move API documentation to Documentation folder 2012-05-08 16:01:34 -07:00
w1 arm-soc: clock driver changes 2012-05-26 12:42:29 -07:00
watchdog watchdog: core: fix WDIOC_GETSTATUS return value 2012-06-28 20:40:56 +02:00
xen Five bug-fixes: 2012-06-15 17:17:15 -07:00
zorro misc latin1 to utf8 conversions 2012-01-02 13:04:55 +01:00
Kconfig Staging tree pull request for 3.5-rc1 2012-05-22 16:34:21 -07:00
Makefile arm-soc: driver specific updates 2012-05-26 12:22:27 -07:00