linux-hardened/drivers
Eran Ben Elisha c55d8b108c net/mlx5e: Fix TXQ indices to be sequential
Cited patch changed (channel index, tc) => (TXQ index) mapping to be a
static one, in order to keep indices consistent when changing number of
channels or TCs.

For 32 channels (OOB) and 8 TCs, real num of TXQs is 256.
When reducing the amount of channels to 8, the real num of TXQs will be
changed to 64.
This indices method is buggy:
- Channel #0, TC 3, the TXQ index is 96.
- Index 8 is not valid, as there is no such TXQ from driver perspective
  (As it represents channel #8, TC 0, which is not valid with the above
  configuration).

As part of driver's select queue, it calls netdev_pick_tx which returns an
index in the range of real number of TXQs. Depends on the return value,
with the examples above, driver could have returned index larger than the
real number of tx queues, or crash the kernel as it tries to read invalid
address of SQ which was not allocated.

Fix that by allocating sequential TXQ indices, and hold a new mapping
between (channel index, tc) => (real TXQ index). This mapping will be
updated as part of priv channels activation, and is used in
mlx5e_select_queue to find the selected queue index.

The existing indices mapping (channel_tc2txq) is no longer needed, as it
is used only for statistics structures and can be calculated on run time.
Delete its definintion and updates.

Fixes: 8bfaf07f78 ("net/mlx5e: Present SW stats when state is not opened")
Signed-off-by: Eran Ben Elisha <eranbe@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
2019-12-05 13:02:10 -08:00
..
accessibility
acpi libnvdimm for 5.5 2019-12-01 18:43:25 -08:00
amba
android compat_ioctl: remove most of fs/compat_ioctl.c 2019-12-01 13:46:15 -08:00
ata This is the bulk of GPIO changes for the v5.5 kernel cycle 2019-12-01 17:56:50 -08:00
atm
auxdisplay
base drivers/base/memory.c: drop the mem_sysfs_mutex 2019-12-01 12:59:04 -08:00
bcma
block for-linus-20191129 2019-12-01 18:26:56 -08:00
bluetooth Bluetooth: btbcm: Use the BDADDR_PROPERTY quirk 2019-11-22 13:35:20 +01:00
bus Staging / IIO patches for 5.5-rc1 2019-11-27 10:57:52 -08:00
cdrom cdrom: respect device capabilities during opening action 2019-11-26 13:02:24 -07:00
char compat_ioctl: remove most of fs/compat_ioctl.c 2019-12-01 13:46:15 -08:00
clk This merge window we have one small clk provider API in the core framework and 2019-12-01 16:06:02 -08:00
clocksource First set of RISC-V updates for v5.5-rc1 2019-11-27 11:27:59 -08:00
connector
counter
cpufreq Power management updates for 5.5-rc1 2019-11-26 19:06:44 -08:00
cpuidle cpuidle: Pass exit latency limit to cpuidle_use_deepest_state() 2019-11-20 11:46:18 +01:00
crypto compat_ioctl: remove most of fs/compat_ioctl.c 2019-12-01 13:46:15 -08:00
dax libnvdimm for 5.5 2019-12-01 18:43:25 -08:00
dca
devfreq
dio
dma
dma-buf compat_ioctl: remove most of fs/compat_ioctl.c 2019-12-01 13:46:15 -08:00
edac EDAC/altera: Use the Altera System Manager driver 2019-11-22 10:18:29 +01:00
eisa
extcon Char/Misc driver patches for 5.5-rc1 2019-11-27 10:53:50 -08:00
firewire compat_ioctl: remove most of fs/compat_ioctl.c 2019-12-01 13:46:15 -08:00
firmware Char/Misc driver patches for 5.5-rc1 2019-11-27 10:53:50 -08:00
fpga
fsi
gnss
gpio This is the bulk of GPIO changes for the v5.5 kernel cycle 2019-12-01 17:56:50 -08:00
gpu This is the bulk of GPIO changes for the v5.5 kernel cycle 2019-12-01 17:56:50 -08:00
greybus
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid 2019-12-01 18:20:54 -08:00
hsi
hv Merge branch 'akpm' (patches from Andrew) 2019-12-01 20:36:41 -08:00
hwmon compat_ioctl: remove most of fs/compat_ioctl.c 2019-12-01 13:46:15 -08:00
hwspinlock
hwtracing compat_ioctl: remove most of fs/compat_ioctl.c 2019-12-01 13:46:15 -08:00
i2c Merge branch 'i2c/for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2019-12-01 18:29:36 -08:00
i3c
ide compat_ioctl: remove most of fs/compat_ioctl.c 2019-12-01 13:46:15 -08:00
idle
iio compat_ioctl: remove most of fs/compat_ioctl.c 2019-12-01 13:46:15 -08:00
infiniband net: ipv6_stub: use ip6_dst_lookup_flow instead of ip6_dst_lookup 2019-12-04 12:27:13 -08:00
input Merge branch 'next' into for-linus 2019-11-25 13:26:56 -08:00
interconnect
iommu - Support for new VMBus protocols (Andrea Parri). 2019-11-30 14:50:51 -08:00
ipack
irqchip First set of RISC-V updates for v5.5-rc1 2019-11-27 11:27:59 -08:00
isdn compat_ioctl: remove most of fs/compat_ioctl.c 2019-12-01 13:46:15 -08:00
leds Merge tag 'leds-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds 2019-12-01 16:09:28 -08:00
lightnvm
macintosh powerpc updates for 5.5 2019-11-30 14:35:43 -08:00
mailbox mailbox changes for v5.5 2019-12-01 18:42:02 -08:00
mcb
md - Fix DM core to disallow stacking request-based DM on partitions. 2019-11-25 11:53:26 -08:00
media compat_ioctl: remove most of fs/compat_ioctl.c 2019-12-01 13:46:15 -08:00
memory
memstick memstick: Fix Kconfig indentation 2019-11-21 12:25:59 +01:00
message
mfd - Core Frameworks 2019-12-01 16:16:31 -08:00
misc Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-12-01 19:05:07 -08:00
mmc Driver core patches for 5.5-rc1 2019-11-27 11:06:20 -08:00
mtd compat_ioctl: remove most of fs/compat_ioctl.c 2019-12-01 13:46:15 -08:00
mux
net net/mlx5e: Fix TXQ indices to be sequential 2019-12-05 13:02:10 -08:00
nfc Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-11-22 16:27:24 -08:00
ntb
nubus
nvdimm libnvdimm for 5.5 2019-12-01 18:43:25 -08:00
nvme compat_ioctl: remove most of fs/compat_ioctl.c 2019-12-01 13:46:15 -08:00
nvmem Char/Misc driver patches for 5.5-rc1 2019-11-27 10:53:50 -08:00
of dma-mapping updates for 5.5-rc1 2019-11-28 11:16:43 -08:00
opp
oprofile Printk changes for 5.5 2019-11-25 19:40:40 -08:00
parisc
parport
pci compat_ioctl: remove most of fs/compat_ioctl.c 2019-12-01 13:46:15 -08:00
pcmcia pcmcia: remove unused dprintk definition 2019-11-22 07:03:45 +01:00
perf
phy Char/Misc driver patches for 5.5-rc1 2019-11-27 10:53:50 -08:00
pinctrl pinctrl: Fix warning by adding missing MODULE_LICENSE 2019-11-28 09:12:43 +01:00
platform platform-drivers-x86 for v5.5-1 2019-12-01 18:24:25 -08:00
pnp
power - Core Frameworks 2019-12-01 16:16:31 -08:00
powercap
pps
ps3
ptp Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-11-16 21:51:42 -08:00
pwm
rapidio
ras
regulator Merge branch 'regulator-5.5' into regulator-next 2019-11-22 19:56:20 +00:00
remoteproc remoteproc: stm32: fix probe error case 2019-11-18 20:35:16 -08:00
reset
rpmsg rpmsg updates for v5.5 2019-12-01 18:39:24 -08:00
rtc - Core Frameworks 2019-12-01 16:16:31 -08:00
s390 compat_ioctl: remove most of fs/compat_ioctl.c 2019-12-01 13:46:15 -08:00
sbus
scsi for-linus-20191129 2019-12-01 18:26:56 -08:00
sfi
sh
siox
slimbus
soc Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-11-16 21:51:42 -08:00
soundwire
spi Merge branch 'spi-5.5' into spi-next 2019-11-22 19:56:35 +00:00
spmi
ssb
staging compat_ioctl: remove most of fs/compat_ioctl.c 2019-12-01 13:46:15 -08:00
target
tc
tee
thermal platform-drivers-x86 for v5.5-1 2019-12-01 18:24:25 -08:00
thunderbolt thunderbolt: Power cycle the router if NVM authentication fails 2019-11-19 17:35:57 +01:00
tty compat_ioctl: remove most of fs/compat_ioctl.c 2019-12-01 13:46:15 -08:00
uio
usb compat_ioctl: remove most of fs/compat_ioctl.c 2019-12-01 13:46:15 -08:00
vfio compat_ioctl: remove most of fs/compat_ioctl.c 2019-12-01 13:46:15 -08:00
vhost compat_ioctl: remove most of fs/compat_ioctl.c 2019-12-01 13:46:15 -08:00
video Merge branch 'i2c/for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2019-12-01 18:29:36 -08:00
virt compat_ioctl: remove most of fs/compat_ioctl.c 2019-12-01 13:46:15 -08:00
virtio virtio_balloon: fix shrinker count 2019-11-20 02:15:57 -05:00
visorbus
vlynq
vme
w1
watchdog linux-watchdog 5.5-rc1 tag 2019-12-01 18:01:03 -08:00
xen mm/memory_hotplug.c: remove __online_page_set_limits() 2019-12-01 12:59:10 -08:00
zorro
Kconfig
Makefile