linux/drivers
Tariq Toukan 36154be40a net/mlx5e: Fix wrong CQE decompression
In cqe compression with striding RQ, the decompression of the CQE field
wqe_counter was done with a wrong wraparound value.
This caused handling cqes with a wrong pointer to wqe (rx descriptor)
and creating SKBs with wrong data, pointing to wrong (and already consumed)
strides/pages.

The meaning of the CQE field wqe_counter in striding RQ holds the
stride index instead of the WQE index. Hence, when decompressing
a CQE, wqe_counter should have wrapped-around the number of strides
in a single multi-packet WQE.

We dropped this wrap-around mask at all in CQE decompression of striding
RQ. It is not needed as in such cases the CQE compression session would
break because of different value of wqe_id field, starting a new
compression session.

Tested:
 ethtool -K ethxx lro off/on
 ethtool --set-priv-flags ethxx rx_cqe_compress on
 super_netperf 16 {ipv4,ipv6} -t TCP_STREAM -m 50 -D
 verified no csum errors and no page refcount issues.

Fixes: 7219ab34f1 ("net/mlx5e: CQE compression")
Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
Reported-by: Tom Herbert <tom@herbertland.com>
Cc: kernel-team@fb.com
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-23 10:43:10 -05:00
..
accessibility
acpi arm64 updates for 4.11: 2017-02-22 10:46:44 -08:00
amba
android
ata Merge branch 'for-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata 2017-02-21 17:21:32 -08:00
atm atm: idt77252, use setup_timer and mod_timer 2017-02-15 13:24:53 -05:00
auxdisplay auxdisplay: fix new ht16k33 build errors 2017-01-11 09:27:30 +01:00
base Generic device properties framework updates for v4.11-rc1 2017-02-20 18:06:09 -08:00
bcma Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-02-02 16:54:00 -05:00
block xen: features and fixes for 4.11-rc0 2017-02-21 13:53:41 -08:00
bluetooth btmrvl: fix spelling mistake: "actived" -> "activated" 2017-02-19 00:26:37 +01:00
bus
cdrom Merge branch 'for-4.11/next' into for-4.11/linus-merge 2017-02-17 14:08:19 -07:00
char Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security 2017-02-21 12:49:56 -08:00
clk PM / OPP: Update OPP users to put reference 2017-01-30 09:22:21 +01:00
clocksource Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-02-20 10:06:32 -08:00
connector
cpufreq Power management updates for v4.11-rc1 2017-02-20 17:41:31 -08:00
cpuidle powerpc updates for 4.11 part 1. 2017-02-22 10:30:38 -08:00
crypto Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2017-02-06 14:16:23 -08:00
dax
dca
devfreq Merge branch 'pm-devfreq' 2017-02-20 14:23:40 +01:00
dio
dma dmaengine updates for 4.11-rc1 2017-02-21 17:06:22 -08:00
dma-buf
edac Merge branch 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-02-20 12:47:44 -08:00
eisa
extcon extcon: return error code on failure 2017-01-11 09:11:39 +01:00
firewire
firmware arm64 updates for 4.11: 2017-02-22 10:46:44 -08:00
fmc
fpga
gpio gpio: aspeed: Remove dependence on GPIOF_* macros 2017-02-04 21:34:55 +01:00
gpu Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-02-20 13:23:30 -08:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2017-02-21 17:28:25 -08:00
hsi
hv Drivers: hv: vmbus: finally fix hv_need_to_signal_on_read() 2017-01-31 10:59:48 +01:00
hwmon hwmon: (sht15) Add device tree support 2017-02-16 06:49:05 -08:00
hwspinlock
hwtracing
i2c Generic device properties framework updates for v4.11-rc1 2017-02-20 18:06:09 -08:00
ide Merge branch 'for-4.11/next' into for-4.11/linus-merge 2017-02-17 14:08:19 -07:00
idle
iio iio: dht11: Use usleep_range instead of msleep for start signal 2017-01-22 13:35:40 +00:00
infiniband Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-02-22 10:15:09 -08:00
input Input: elan_i2c - add ELAN0605 to the ACPI table 2017-02-12 18:36:49 -08:00
iommu Merge branches 'iommu/fixes', 'arm/exynos', 'arm/renesas', 'arm/smmu', 'arm/mediatek', 'arm/core', 'x86/vt-d' and 'core' into next 2017-02-10 15:13:10 +01:00
ipack
irqchip IOMMU Updates for Linux v4.11 2017-02-20 16:42:43 -08:00
isdn Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-02-22 10:15:09 -08:00
leds leds: ledtrig-heartbeat: Make top brightness adjustable 2017-02-14 22:20:24 +01:00
lguest
lightnvm lightnvm: set default lun range when no luns are specified 2017-02-15 08:27:21 -07:00
macintosh powerpc updates for 4.11 part 1. 2017-02-22 10:30:38 -08:00
mailbox
mcb
md - Fix dm-raid transient device failure processing and other smaller 2017-02-21 12:11:41 -08:00
media media updates for v4.11-rc1 2017-02-21 16:58:32 -08:00
memory
memstick Merge branch 'for-4.11/next' into for-4.11/linus-merge 2017-02-17 14:08:19 -07:00
message SCSI misc on 20170220 2017-02-21 11:51:42 -08:00
mfd mfd: lpc_ich: Add support for Intel Apollo Lake SoC 2017-01-03 17:34:16 +00:00
misc powerpc updates for 4.11 part 1. 2017-02-22 10:30:38 -08:00
mmc MMC core: 2017-02-21 12:04:54 -08:00
mtd for-4.11/linus-merge-signed 2017-02-21 10:57:33 -08:00
net net/mlx5e: Fix wrong CQE decompression 2017-02-23 10:43:10 -05:00
nfc
ntb ntb: ntb_hw_intel: link_poll isn't clearing the pending status properly 2017-02-16 23:11:26 -05:00
nubus
nvdimm libnvdimm, pfn: fix memmap reservation size versus 4K alignment 2017-02-04 14:47:31 -08:00
nvme Merge branch 'for-4.11/next' into for-4.11/linus-merge 2017-02-17 14:08:19 -07:00
nvmem nvmem: fix nvmem_cell_read() return type doc 2017-01-04 18:22:47 +01:00
of arm64 updates for 4.11: 2017-02-22 10:46:44 -08:00
oprofile
parisc
parport parisc, parport_gsc: Fixes for printk continuation lines 2017-01-28 21:54:21 +01:00
pci Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-02-22 10:15:09 -08:00
pcmcia
perf perf: add qcom l2 cache perf events driver 2017-02-08 19:32:24 +00:00
phy
pinctrl Pin control bulk changes for the v4.11 kernel cycle: 2017-02-21 16:34:22 -08:00
platform Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-02-20 16:26:57 -08:00
pnp
power power: supply: add AC power supply driver for AXP20X and AXP22X PMICs 2017-01-29 23:15:18 +01:00
powercap
pps
ps3
ptp ptp: create "pins" together with the rest of attributes 2017-02-17 11:03:06 -05:00
pwm
rapidio
ras
regulator regulator: Updates for v4.11 2017-02-20 17:23:57 -08:00
remoteproc Revert "remoteproc: Merge table_ptr and cached_table pointers" 2016-12-30 03:26:31 -08:00
reset reset: fix shared reset triggered_count decrement on error 2017-02-17 08:11:47 +01:00
rpmsg rpmsg: virtio_rpmsg_bus: fix channel creation 2016-12-30 03:12:11 -08:00
rtc Pin control bulk changes for the v4.11 kernel cycle: 2017-02-21 16:34:22 -08:00
s390 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2017-02-22 10:20:04 -08:00
sbus
scsi Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-02-22 10:15:09 -08:00
sfi
sh
sn
soc Linux 4.10-rc6 2017-01-30 14:39:20 +01:00
spi ACPI updates for v4.11-rc1 2017-02-20 17:55:15 -08:00
spmi
ssb
staging Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-02-22 10:15:09 -08:00
target Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-02-22 10:15:09 -08:00
tc
thermal Merge branch 'pm-opp' 2017-02-20 14:22:50 +01:00
thunderbolt
tty Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-02-20 13:23:30 -08:00
uio
usb Pin control bulk changes for the v4.11 kernel cycle: 2017-02-21 16:34:22 -08:00
uwb
vfio IOMMU Updates for Linux v4.11 2017-02-20 16:42:43 -08:00
vhost tap: tap as an independent module 2017-02-11 20:59:41 -05:00
video fbdev: color map copying bounds checking 2017-01-24 16:26:14 -08:00
virt
virtio Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-02-07 16:29:30 -05:00
vlynq
vme vme: Fix wrong pointer utilization in ca91cx42_slave_get 2017-01-11 10:42:16 +01:00
w1
watchdog
xen xen/privcmd: add IOCTL_PRIVCMD_RESTRICT 2017-02-14 15:14:59 -05:00
zorro
Kconfig
Makefile