sst-linux/drivers
Tobias Waldekranz b3f48a41a0 net: mvpp2: Prevent parser TCAM memory corruption
[ Upstream commit 96844075226b49af25a69a1d084b648ec2d9b08d ]

Protect the parser TCAM/SRAM memory, and the cached (shadow) SRAM
information, from concurrent modifications.

Both the TCAM and SRAM tables are indirectly accessed by configuring
an index register that selects the row to read or write to. This means
that operations must be atomic in order to, e.g., avoid spreading
writes across multiple rows. Since the shadow SRAM array is used to
find free rows in the hardware table, it must also be protected in
order to avoid TOCTOU errors where multiple cores allocate the same
row.

This issue was detected in a situation where `mvpp2_set_rx_mode()` ran
concurrently on two CPUs. In this particular case the
MVPP2_PE_MAC_UC_PROMISCUOUS entry was corrupted, causing the
classifier unit to drop all incoming unicast - indicated by the
`rx_classifier_drops` counter.

Fixes: 3f518509de ("ethernet: Add new driver for Marvell Armada 375 network unit")
Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Tested-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Link: https://patch.msgid.link/20250401065855.3113635-1-tobias@waldekranz.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-04-10 14:33:40 +02:00
..
accessibility
acpi ACPI: processor: idle: Return an error if both P_LVL{2,3} idle states are invalid 2025-04-10 14:33:38 +02:00
amba
android binder: fix UAF caused by offsets overwrite 2024-09-12 11:10:26 +02:00
ata ata: libata-sff: Ensure that we cannot write outside the allocated buffer 2025-02-21 13:49:49 +01:00
atm
auxdisplay
base PM: sleep: Fix handling devices with direct_complete set on errors 2025-04-10 14:33:31 +02:00
bcma
block ublk: set_params: properly check if parameters can be applied 2025-03-13 12:53:18 +01:00
bluetooth bluetooth: btusb: Initialize .owner field of force_poll_sync_fops 2025-03-13 12:53:16 +01:00
bus bus: mhi: host: pci_generic: Use pci_try_reset_function() to avoid deadlock 2025-03-13 12:53:22 +01:00
cdrom
char tpm: Change to kvalloc() in eventlog/acpi.c 2025-03-07 16:56:31 +01:00
clk clk: qcom: mmcc-sdm660: fix stuck video_subcore0 clock 2025-04-10 14:33:35 +02:00
clocksource clockevents/drivers/i8253: Fix stop sequence for timer 0 2025-03-28 21:58:48 +01:00
comedi comedi: Flush partial mappings in error case 2024-12-14 19:53:59 +01:00
connector
counter counter: microchip-tcb-capture: Fix undefined counter channel state on probe 2025-04-07 10:05:45 +02:00
cpufreq cpufreq: governor: Fix negative 'idle_time' handling in dbs_update() 2025-04-10 14:33:30 +02:00
cpuidle cpuidle: riscv-sbi: fix device node release in early exit of for_each_possible_cpu 2025-01-17 13:34:41 +01:00
crypto crypto: hisilicon/sec2 - fix for aead auth key length 2025-04-10 14:33:35 +02:00
cxl cxl/region: Fix region creation for greater than x2 switches 2024-12-27 13:52:53 +01:00
dax dax: delete a stale directory pmem 2024-12-14 19:53:41 +01:00
dca
devfreq
dio
dma dmaengine: ti: edma: fix OF node reference leaks in edma_driver 2025-02-21 13:49:21 +01:00
dma-buf udmabuf: also check for F_SEAL_FUTURE_WRITE 2024-12-27 13:53:01 +01:00
edac EDAC/ie31200: Fix the error path order of ie31200_init() 2025-04-10 14:33:31 +02:00
eisa
extcon
firewire
firmware efi/libstub: Avoid physical address 0x0 when doing random allocation 2025-03-28 21:59:01 +01:00
fpga fpga: manager: add owner module and take its refcount 2024-12-14 19:53:12 +01:00
fsi
gnss
gpio gpio: rcar: Fix missing of_node_put() call 2025-03-13 12:53:19 +01:00
gpu drm/amd: Keep display off while going into S4 2025-04-10 14:33:39 +02:00
greybus
hid HID: i2c-hid: improve i2c_hid_get_report error message 2025-04-10 14:33:39 +02:00
hsi
hte
hv Drivers: hv: vmbus: Don't release fb_mmio resource in vmbus_free_mmio() 2025-03-28 21:58:49 +01:00
hwmon hwmon: (nct6775-core) Fix out of bounds access for NCT679{8,9} 2025-04-10 14:33:39 +02:00
hwspinlock
hwtracing coresight-etm4x: add isb() before reading the TRCSTATR 2025-04-10 14:33:35 +02:00
i2c i2c: omap: fix IRQ storms 2025-03-28 21:59:00 +01:00
i3c i3c: master: svc: Fix missing the IBI rules 2025-04-10 14:33:36 +02:00
idle cpuidle, intel_idle: Fix CPUIDLE_FLAG_IBRS 2025-03-13 12:53:11 +01:00
iio iio: adc: ad7124: Fix comparison of channel configs 2025-04-10 14:33:36 +02:00
infiniband RDMA/mlx5: Fix mlx5_poll_one() cur_qp update flow 2025-04-10 14:33:35 +02:00
input Input: i8042 - swap old quirk combination with new quirk for more devices 2025-03-28 21:58:56 +01:00
interconnect
iommu iommu/arm-smmu-v3: Clean up more on probe failure 2025-02-21 13:49:33 +01:00
ipack
irqchip irqchip/apple-aic: Only handle PMC interrupt as FIQ when configured so 2025-02-21 13:49:51 +01:00
isdn
leds leds: mlxreg: Use devm_mutex_init() for mutex initialization 2025-03-28 21:58:57 +01:00
macintosh
mailbox mailbox: tegra-hsp: Clear mailbox before using message 2025-02-21 13:49:51 +01:00
mcb
md md/md-bitmap: Synchronize bitmap_get_stats() with bitmap lifetime 2025-03-07 16:56:28 +01:00
media objtool, media: dib8000: Prevent divide-by-zero in dib8000_set_dds() 2025-04-10 14:33:37 +02:00
memory memory: omap-gpmc: drop no compatible check 2025-04-10 14:33:39 +02:00
memstick memstick: rtsx_usb_ms: Fix slab-use-after-free in rtsx_usb_ms_drv_remove 2025-04-07 10:05:46 +02:00
message scsi: fusion: Remove unused variable 'rc' 2024-12-14 19:53:40 +01:00
mfd mfd: sm501: Switch to BIT() to mitigate integer overflows 2025-04-10 14:33:35 +02:00
misc eeprom: digsy_mtc: Make GPIO lookup table match the device 2025-03-13 12:53:22 +01:00
mmc mmc: atmel-mci: Add missing clk_disable_unprepare() 2025-03-28 21:59:01 +01:00
most
mtd mtd: rawnand: cadence: fix incorrect device in dma_unmap_single 2025-03-07 16:56:40 +01:00
mux
net net: mvpp2: Prevent parser TCAM memory corruption 2025-04-10 14:33:40 +02:00
nfc
ntb ntb: intel: Fix using link status DB's 2025-04-10 14:33:40 +02:00
nubus
nvdimm nvdimm: rectify the illogical code within nd_dax_probe() 2024-12-14 19:54:47 +01:00
nvme nvme-pci: skip CMB blocks incompatible with PCI P2P DMA 2025-04-10 14:33:38 +02:00
nvmem nvmem: core: improve range check for nvmem_cell_write() 2025-02-21 13:49:50 +01:00
of Revert "of: reserved-memory: Fix using wrong number of cells to get property 'alignment'" 2025-03-13 12:53:11 +01:00
opp OPP: OF: Fix an OF node leak in _opp_add_static_v2() 2025-02-21 13:49:02 +01:00
parisc
parport parport_pc: add support for ASIX AX99100 2025-02-21 13:50:11 +01:00
pci PCI: pciehp: Don't enable HPIE when resuming in poll mode 2025-04-10 14:33:33 +02:00
pcmcia
peci
perf perf/arm-cmn: Ensure port and device id bits are set properly 2024-12-14 19:54:09 +01:00
phy phy: exynos5-usbdrd: fix MPLL_MULTIPLIER and SSC_REFCLKSEL masks in refclk 2025-03-07 16:56:50 +01:00
pinctrl pinctrl: renesas: rzv2m: Fix missing of_node_put() call 2025-04-10 14:33:35 +02:00
platform platform/x86: intel-hid: fix volume buttons on Microsoft Surface Go 4 tablet 2025-04-10 14:33:39 +02:00
pnp
power power: supply: max77693: Fix wrong conversion of charge input threshold value 2025-04-10 14:33:35 +02:00
powercap powercap: call put_device() on an error path in powercap_register_control_type() 2025-03-28 21:58:50 +01:00
pps pps: Fix a use-after-free 2025-02-21 13:49:55 +01:00
ps3
ptp pps: Fix a use-after-free 2025-02-21 13:49:55 +01:00
pwm pwm: stm32: Add check for clk_enable() 2025-02-21 13:49:05 +01:00
rapidio rapidio: fix an API misues when rio_add_net() fails 2025-03-13 12:53:15 +01:00
ras
regulator regulator: check that dummy regulator has been probed before using it 2025-03-28 21:59:00 +01:00
remoteproc remoteproc: qcom_q6v5_mss: Handle platforms with one power domain 2025-04-10 14:33:34 +02:00
reset
rpmsg rpmsg: glink: use only lower 16-bits of param2 for CMD_OPEN name length 2024-12-14 19:53:47 +01:00
rtc rtc: zynqmp: Fix optional clock name property 2025-02-21 13:49:53 +01:00
s390 s390/cio: Fix CHPID "configure" attribute caching 2025-03-28 21:58:51 +01:00
sbus
scsi scsi: qla1280: Fix kernel oops when debug level > 2 2025-03-28 21:58:50 +01:00
sh sh: clk: Fix clk_enable() to return 0 on NULL clk 2024-12-27 13:52:58 +01:00
siox
slimbus slimbus: messaging: Free transaction ID in delayed interrupt scenario 2025-03-13 12:53:22 +01:00
soc soc: qcom: pdr: Fix the potential deadlock 2025-03-28 21:59:01 +01:00
soundwire soundwire: slave: fix an OF node reference leak in soundwire slave device 2025-04-10 14:33:35 +02:00
spi spi-mxs: Fix chipselect glitch 2025-03-13 12:53:24 +01:00
spmi spmi: hisi-spmi-controller: Do not override device identifier 2024-06-21 14:35:55 +02:00
ssb
staging staging: rtl8723bs: select CONFIG_CRYPTO_LIB_AES 2025-04-10 14:33:37 +02:00
target scsi: target: core: Fix null-ptr-deref in target_alloc_device() 2024-11-01 01:56:00 +01:00
tc
tee tee: optee: Fix supplicant wait loop 2025-03-07 16:56:38 +01:00
thermal thermal: int340x: Add NULL check for adev 2025-04-10 14:33:31 +02:00
thunderbolt thunderbolt: Don't display nvm_version unless upgrade supported 2025-01-09 13:29:56 +01:00
tty serial: 8250_dma: terminate correct DMA in tx_dma_flush() 2025-04-07 10:05:46 +02:00
ufs scsi: ufs: bsg: Set bsg_queue to NULL after removal 2025-02-21 13:49:59 +01:00
uio
usb usb: xhci: correct debug message page size calculation 2025-04-10 14:33:36 +02:00
vdpa vdpa/mlx5: Fix suboptimal range on iotlb iteration 2024-12-14 19:53:48 +01:00
vfio vfio/pci: Enable iowrite64 and ioread64 for vfio pci 2025-02-21 13:49:59 +01:00
vhost vhost/scsi: null-ptr-dereference in vhost_scsi_get_req() 2024-10-17 15:22:09 +02:00
video fbdev: sm501fb: Add some geometry checks. 2025-04-10 14:33:33 +02:00
virt drivers: virt: acrn: hsm: Use kzalloc to avoid info leak in pmcmd_ioctl 2025-03-13 12:53:23 +01:00
virtio
vlynq
w1
watchdog watchdog: it87_wdt: add PWRGD enable quirk for Qotom QCML04 2025-01-02 10:30:51 +01:00
xen Xen/swiotlb: mark xen_swiotlb_fixup() __init 2025-03-28 21:58:51 +01:00
zorro
Kconfig
Makefile