linux-stable/drivers
Przemek Kitszel 31b4a54893 ice: fix stats being updated by way too large values
[ Upstream commit 257310e998 ]

Simplify stats accumulation logic to fix the case where we don't take
previous stat value into account, we should always respect it.

Main netdev stats of our PF (Tx/Rx packets/bytes) were reported orders of
magnitude too big during OpenStack reconfiguration events, possibly other
reconfiguration cases too.

The regression was reported to be between 6.1 and 6.2, so I was almost
certain that on of the two "preserve stats over reset" commits were the
culprit. While reading the code, it was found that in some cases we will
increase the stats by arbitrarily large number (thanks to ignoring "-prev"
part of condition, after zeroing it).

Note that this fixes also the case where we were around limits of u64, but
that was not the regression reported.

Full disclosure: I remember suggesting this particular piece of code to
Ben a few years ago, so blame on me.

Fixes: 2fd5e433cd ("ice: Accumulate HW and Netdev statistics over reset")
Reported-by: Nebojsa Stevanovic <nebojsa.stevanovic@gcore.com>
Link: https://lore.kernel.org/intel-wired-lan/VI1PR02MB439744DEDAA7B59B9A2833FE912EA@VI1PR02MB4397.eurprd02.prod.outlook.com
Reported-by: Christian Rohmann <christian.rohmann@inovex.de>
Link: https://lore.kernel.org/intel-wired-lan/f38a6ca4-af05-48b1-a3e6-17ef2054e525@inovex.de
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-03-26 18:18:22 -04:00
..
accel accel/ivpu: Don't enable any tiles by default on VPU40xx 2024-03-01 13:41:48 +01:00
accessibility
acpi ACPI: scan: Fix device check notification handling 2024-03-26 18:18:21 -04:00
amba
android binder: signal epoll threads of self-work 2024-02-23 09:51:40 +01:00
ata ata: ahci_ceva: fix error handling for Xilinx GT PHY support 2024-03-01 13:41:55 +01:00
atm atm: idt77252: fix a memleak in open_card_ubr0 2024-02-16 19:14:21 +01:00
auxdisplay
base regmap: kunit: Ensure that changed bytes are actually different 2024-03-26 18:17:50 -04:00
bcma
block aoe: fix the potential use-after-free problem in aoecmd_cfg_pkts 2024-03-26 18:18:01 -04:00
bluetooth Bluetooth: hci_bcm4377: do not mark valid bd_addr as invalid 2024-03-06 14:53:54 +00:00
bus bus: tegra-aconnect: Update dependency to ARCH_TEGRA 2024-03-26 18:18:14 -04:00
cache cache: ax45mp_cache: Align end size to cache boundary in ax45mp_dma_cache_wback() 2024-03-01 13:41:57 +01:00
cdrom
cdx cdx: Unlock on error path in rescan_store() 2024-01-25 15:45:25 -08:00
char hwrng: starfive - Fix dev_err_probe return error 2024-02-05 20:16:46 +00:00
clk clk: imx: clk-imx8qxp: fix LVDS bypass, pixel and phy clocks 2024-02-05 20:17:01 +00:00
clocksource clocksource/drivers/ep93xx: Fix error handling during probe 2024-01-25 15:45:10 -08:00
comedi
connector connector/cn_proc: revert "connector: Fix proc_event_num_listeners count not cleared" 2024-02-23 09:51:36 +01:00
counter
cpufreq cpufreq: qcom-hw: add CONFIG_COMMON_CLK dependency 2024-03-26 18:18:14 -04:00
cpuidle cpuidle: haltpoll: Do not enable interrupts when entering idle 2024-01-25 15:44:40 -08:00
crypto crypto: virtio/akcipher - Fix stack overflow on memcpy 2024-03-01 13:41:48 +01:00
cxl cxl/region: Allow out of order assembly of autodiscovered regions 2024-03-26 18:17:52 -04:00
dax
dca
devfreq PM / devfreq: Synchronize devfreq_monitor_[start/stop] 2024-02-05 20:16:46 +00:00
dio
dma dmaengine: fsl-edma: correct max_segment_size setting 2024-03-15 10:48:14 -04:00
dma-buf dma-buf: fix check in dma_resv_add_fence 2023-11-27 20:00:47 +01:00
dpll dpll: fix possible deadlock during netlink dump operation 2024-02-23 09:51:24 +01:00
edac EDAC/thunderx: Fix possible out-of-bounds string access 2024-01-25 15:44:37 -08:00
eisa
extcon extcon: fix possible name leak in extcon_dev_register() 2024-02-05 20:17:04 +00:00
firewire firewire: core: use long bus reset on gap count error 2024-03-26 18:17:55 -04:00
firmware firmware: arm_scmi: Fix double free in SMC transport cleanup path 2024-03-26 18:18:16 -04:00
fpga
fsi
gnss
gpio gpiolib: Pass consumer device through to core in devm_fwnode_gpiod_get_index() 2024-03-26 18:18:20 -04:00
gpu drm/buddy: check range allocation matches alignment 2024-03-26 18:17:55 -04:00
greybus greybus: gb-beagleplay: Remove use of pad bytes 2024-01-25 15:45:23 -08:00
hid HID: multitouch: Add required quirk for Synaptics 0xcddc device 2024-03-26 18:17:51 -04:00
hsi
hte
hv
hwmon hwmon: (nct6775) Fix access to temperature configuration registers 2024-03-01 13:41:57 +01:00
hwspinlock
hwtracing coresight: etm4x: Fix width of CCITMIN field 2024-01-20 11:53:02 +01:00
i2c i2c: imx: when being a target, mark the last read as processed 2024-03-01 13:41:59 +01:00
i3c i3c: master: cdns: Update maximum prescaler value for i2c clock 2024-02-05 20:17:03 +00:00
idle x86: Fix CPUIDLE_FLAG_IRQ_ENABLE leaking timer reprogram 2024-01-25 15:44:37 -08:00
iio iio: pressure: bmp280: Add missing bmp085 to SPI id table 2024-02-23 09:51:42 +01:00
infiniband RDMA/mlx5: Relax DEVX access upon modify commands 2024-03-26 18:17:51 -04:00
input Input: gpio_keys_polled - suppress deferred probe error for gpio 2024-03-26 18:17:56 -04:00
interconnect interconnect: qcom: sm8550: Enable sync_state 2024-02-23 09:51:32 +01:00
iommu iommu/vt-d: Don't issue ATS Invalidation request when device is disconnected 2024-03-26 18:18:22 -04:00
ipack
irqchip irqchip/sifive-plic: Enable interrupt if needed before EOI 2024-03-01 13:41:49 +01:00
isdn
leds leds: trigger: panic: Don't register panic notifier if creating the trigger failed 2024-02-05 20:17:02 +00:00
macintosh
mailbox mailbox: arm_mhuv2: Fix a bug for mhuv2_sender_interrupt 2024-02-05 20:17:03 +00:00
mcb
md md/raid1: fix choose next idle in read_balance() 2024-03-26 18:18:00 -04:00
media media: rkisp1: Fix IRQ handling due to shared interrupts 2024-03-26 18:17:49 -04:00
memory memory: tegra: Correct DLA client names 2024-03-26 18:18:17 -04:00
memstick
message
mfd mfd: twl6030-irq: Revert to use of_match_device() 2024-03-06 14:53:58 +00:00
misc misc: open-dice: Fix spurious lockdep warning 2024-03-01 13:41:37 +01:00
mmc mmc: wmt-sdmmc: remove an incorrect release_mem_region() call in the .remove function 2024-03-26 18:18:21 -04:00
most
mtd mtd: rawnand: marvell: fix layouts 2024-03-06 14:53:55 +00:00
mux
net ice: fix stats being updated by way too large values 2024-03-26 18:18:22 -04:00
nfc
ntb
nubus
nvdimm
nvme nvmet-fc: take ref count on tgtport before delete assoc 2024-03-01 13:41:39 +01:00
nvmem nvmem: brcm_nvram: store a copy of NVRAM content 2023-12-15 13:15:02 +01:00
of of: property: fw_devlink: Fix stupid bug in remote-endpoint parsing 2024-03-06 14:53:54 +00:00
opp OPP: The level field is always of unsigned int type 2024-02-05 20:16:46 +00:00
parisc parisc/power: Fix power soft-off button emulation on qemu 2024-01-31 16:20:56 -08:00
parport parport: parport_serial: Add Brainboxes device IDs and geometry 2024-01-20 11:53:02 +01:00
pci PCI: Make pci_dev_is_disconnected() helper public for other drivers 2024-03-26 18:18:22 -04:00
pcmcia
peci
perf perf: RISCV: Fix panic on pmu overflow handler 2024-03-26 18:17:55 -04:00
phy phy: qcom-qmp-usb: fix v3 offsets data 2024-03-06 14:53:59 +00:00
pinctrl pinctrl: baytrail: Fix types of config value in byt_pin_config_set() 2024-02-05 20:17:02 +00:00
platform platform/x86: x86-android-tablets: Fix acer_b1_750_goodix_gpios name 2024-03-26 18:17:53 -04:00
pmdomain pmdomain: qcom: rpmhpd: Drop SA8540P gfx.lvl 2024-03-26 18:18:06 -04:00
pnp PNP: ACPI: fix fortify warning 2024-02-05 20:16:45 +00:00
power power: supply: mm8013: select REGMAP_I2C 2024-03-06 14:53:57 +00:00
powercap powercap: dtpm_cpu: Fix error check against freq_qos_add_request() 2024-03-26 18:18:15 -04:00
pps
ps3
ptp ptp: ocp: fix bug in unregistering the DPLL subsystem 2023-12-29 08:37:23 +00:00
pwm pwm: sti: Fix capture for st,pwm-num-chan < st,capture-num-chan 2024-03-26 18:18:11 -04:00
rapidio
ras
regulator regulator: userspace-consumer: add module device table 2024-03-26 18:18:20 -04:00
remoteproc
reset reset: Fix crash when freeing non-existent optional resets 2023-11-30 15:02:21 +01:00
rpmsg rpmsg: virtio: Free driver_override when rpmsg_remove() 2024-01-31 16:20:55 -08:00
rtc rtc: test: Fix invalid format specifier. 2024-03-26 18:18:00 -04:00
s390 s390/dasd: fix double module refcount decrement 2024-03-26 18:17:58 -04:00
sbus
scsi scsi: mpt3sas: Prevent sending diag_reset when the controller is ready 2024-03-26 18:17:55 -04:00
sh
siox
slimbus
soc soc: qcom: llcc: Check return value on Broadcast_OR reg read 2024-03-26 18:18:13 -04:00
soundwire soundwire: fix initializing sysfs for same devices on different buses 2024-01-31 16:20:53 -08:00
spi spi: cadence-qspi: add system-wide suspend and resume callbacks 2024-03-26 18:17:54 -04:00
spmi spmi: mediatek: Fix UAF on device remove 2024-02-05 20:17:04 +00:00
ssb
staging staging: iio: ad5933: fix type mismatch regression 2024-02-23 09:51:41 +01:00
target scsi: target: pscsi: Fix bio_put() for error case 2024-03-01 13:41:46 +01:00
tc
tee OP-TEE fix for supplicant based device enumeration 2023-12-06 16:15:26 +01:00
thermal thermal: core: Fix thermal zone suspend-resume synchronization 2024-02-05 20:16:46 +00:00
thunderbolt thunderbolt: Fix setting the CNS bit in ROUTER_CS_5 2024-02-23 09:51:52 +01:00
tty serial: amba-pl011: Fix DMA transmission in RS485 mode 2024-03-01 13:41:49 +01:00
ufs scsi: ufs: Uninitialized variable in ufshcd_devfreq_target() 2024-03-01 13:41:53 +01:00
uio uio: Fix use-after-free in uio_open 2024-01-20 11:53:01 +01:00
usb usb: roles: don't get/set_role() when usb_role_switch is unregistered 2024-03-01 13:41:50 +01:00
vdpa vdpa: Fix an error handling path in eni_vdpa_probe() 2024-01-25 15:45:23 -08:00
vfio hisi_acc_vfio_pci: Update migration data pointer correctly on saving/resume 2024-01-25 15:45:25 -08:00
vhost virtio/vsock: send credit update during setting SO_RCVLOWAT 2024-01-25 15:44:52 -08:00
video fbcon: always restore the old font data in fbcon_do_set_font() 2024-03-06 14:53:53 +00:00
virt
virtio virtio_ring: fix syncs DMA memory with different direction 2023-12-04 08:36:25 -05:00
w1
watchdog watchdog: it87_wdt: Keep WDTCTRL bit 3 unmodified for IT8784/IT8786 2024-02-05 20:17:01 +00:00
xen xen/events: close evtchn after mapping cleanup 2024-02-23 09:51:57 +01:00
zorro
Kconfig
Makefile