linux/drivers
Larysa Zaremba 744d197162 ice: add flag to distinguish reset from .ndo_bpf in XDP rings config
Commit 6624e780a5 ("ice: split ice_vsi_setup into smaller functions")
has placed ice_vsi_free_q_vectors() after ice_destroy_xdp_rings() in
the rebuild process. The behaviour of the XDP rings config functions is
context-dependent, so the change of order has led to
ice_destroy_xdp_rings() doing additional work and removing XDP prog, when
it was supposed to be preserved.

Also, dependency on the PF state reset flags creates an additional,
fortunately less common problem:

* PFR is requested e.g. by tx_timeout handler
* .ndo_bpf() is asked to delete the program, calls ice_destroy_xdp_rings(),
  but reset flag is set, so rings are destroyed without deleting the
  program
* ice_vsi_rebuild tries to delete non-existent XDP rings, because the
  program is still on the VSI
* system crashes

With a similar race, when requested to attach a program,
ice_prepare_xdp_rings() can actually skip setting the program in the VSI
and nevertheless report success.

Instead of reverting to the old order of function calls, add an enum
argument to both ice_prepare_xdp_rings() and ice_destroy_xdp_rings() in
order to distinguish between calls from rebuild and .ndo_bpf().

Fixes: efc2214b60 ("ice: Add support for XDP")
Reviewed-by: Igor Bagnucki <igor.bagnucki@intel.com>
Signed-off-by: Larysa Zaremba <larysa.zaremba@intel.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Tested-by: Chandan Kumar Rout <chandanx.rout@intel.com>
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Link: https://lore.kernel.org/r/20240603-net-2024-05-30-intel-net-fixes-v2-4-e3563aa89b0c@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2024-06-05 19:27:56 -07:00
..
accel The usual shower of singleton fixes and minor series all over MM, 2024-05-19 09:21:03 -07:00
accessibility Char/Misc bugfix for 6.10-rc1 2024-05-24 08:43:25 -07:00
acpi Char/Misc and other driver subsystem changes for 6.10-rc1 2024-05-22 12:26:46 -07:00
amba
android
ata pci-v6.10-changes 2024-05-21 10:09:28 -07:00
atm atm/fore200e: Delete unused 'fore200e_boards' 2024-05-06 18:26:47 -07:00
auxdisplay - Fix-ups 2024-05-22 10:45:12 -07:00
base regmap: Fix for v6.10 2024-05-23 13:38:31 -07:00
bcma
block block-6.10-20240523 2024-05-23 13:44:47 -07:00
bluetooth virtio: features, fixes, cleanups 2024-05-23 12:04:36 -07:00
bus tracing/treewide: Remove second parameter of __assign_str() 2024-05-22 20:14:47 -04:00
cache
cdrom cdrom: rearrange last_media_change check to avoid unintentional overflow 2024-05-15 12:59:55 -06:00
cdx
char This push fixes a new run-time warning triggered by tpm. 2024-05-29 09:12:58 -07:00
clk I'm actually surprised this time. There aren't any new Qualcomm SoC clk 2024-05-18 12:48:37 -07:00
clocksource RISC-V Patches for the 6.10 Merge Window, Part 1 2024-05-22 09:56:00 -07:00
comedi
connector
counter
cpufreq Power management fixes for 6.10-rc1 2024-05-21 11:40:49 -07:00
cpuidle pmdomain core: 2024-05-16 08:50:32 -07:00
crypto virtio: features, fixes, cleanups 2024-05-23 12:04:36 -07:00
cxl tracing/treewide: Remove second parameter of __assign_str() 2024-05-22 20:14:47 -04:00
dax The usual shower of singleton fixes and minor series all over MM, 2024-05-19 09:21:03 -07:00
dca
devfreq PM / devfreq: exynos: Use DEFINE_SIMPLE_DEV_PM_OPS for PM functions 2024-05-09 00:30:37 +09:00
dio
dma dmaengine updates for v6.10 2024-05-21 11:15:56 -07:00
dma-buf tracing/treewide: Remove second parameter of __assign_str() 2024-05-22 20:14:47 -04:00
dpll dpll: fix return value check for kmemdup 2024-05-13 16:53:53 -07:00
edac - Have skx_edac decode error addresses belonging to SGX properly 2024-05-14 08:31:10 -07:00
eisa
extcon extcon: adc-jack: Document missing struct members 2024-05-09 01:03:39 +09:00
firewire firewire updates for v6.10 2024-05-14 18:57:22 -07:00
firmware virtio: features, fixes, cleanups 2024-05-23 12:04:36 -07:00
fpga Char/Misc and other driver subsystem changes for 6.10-rc1 2024-05-22 12:26:46 -07:00
fsi
gnss
gpio virtio: features, fixes, cleanups 2024-05-23 12:04:36 -07:00
gpu drm fixes for 6.10-rc1 2024-05-24 17:28:02 -07:00
greybus
hid - Fix-ups 2024-05-22 10:45:12 -07:00
hsi
hte
hv Char/Misc and other driver subsystem changes for 6.10-rc1 2024-05-22 12:26:46 -07:00
hwmon Driver core changes for 6.10-rc1 2024-05-22 12:13:40 -07:00
hwspinlock
hwtracing Char/Misc and other driver subsystem changes for 6.10-rc1 2024-05-22 12:26:46 -07:00
i2c I2C core removes an argument from the i2c_mux_add_adapter() call to 2024-05-20 08:55:18 -07:00
i3c i3c: dw: Add hot-join support. 2024-05-23 00:29:19 +02:00
idle
iio Char/Misc and other driver subsystem changes for 6.10-rc1 2024-05-22 12:26:46 -07:00
infiniband tracing/treewide: Remove second parameter of __assign_str() 2024-05-22 20:14:47 -04:00
input Input updates for v6.10-rc0 2024-05-24 09:01:21 -07:00
interconnect tracing/treewide: Remove second parameter of __assign_str() 2024-05-22 20:14:47 -04:00
iommu tracing: Remove second argument of __assign_str() 2024-05-23 12:28:01 -07:00
ipack
irqchip irqchip: riscv-imsic: Fixup riscv_ipi_set_virq_range() conflict 2024-05-23 04:48:40 -07:00
isdn
leds
macintosh powerpc updates for 6.10 2024-05-17 09:05:46 -07:00
mailbox mailbox: Convert from tasklet to BH workqueue 2024-05-19 22:33:28 -05:00
mcb
md - Fix DM discard regressions due to DM core switching over to using 2024-05-21 11:43:11 -07:00
media tracing/treewide: Remove second parameter of __assign_str() 2024-05-22 20:14:47 -04:00
memory ARM development updates for v6.10-rc1 2024-05-17 08:53:47 -07:00
memstick
message SCSI misc on 20240514 2024-05-14 18:25:53 -07:00
mfd pci-v6.10-changes 2024-05-21 10:09:28 -07:00
misc tracing: Remove second argument of __assign_str() 2024-05-23 12:28:01 -07:00
mmc MMC core: 2024-05-16 08:56:49 -07:00
most
mtd bd_inode series 2024-05-21 09:51:42 -07:00
mux
net ice: add flag to distinguish reset from .ndo_bpf in XDP rings config 2024-06-05 19:27:56 -07:00
nfc nfc/nci: Add the inconsistency check between the input data length and count 2024-05-29 13:08:31 +01:00
ntb
nubus
nvdimm virtio: features, fixes, cleanups 2024-05-23 12:04:36 -07:00
nvme nvme updates for Linux 6.10 2024-05-14 09:14:49 -06:00
nvmem
of I2C core removes an argument from the i2c_mux_add_adapter() call to 2024-05-20 08:55:18 -07:00
opp OPP Updates for 6.10 2024-05-17 13:01:24 +02:00
parisc
parport
pci pci-v6.10-changes 2024-05-21 10:09:28 -07:00
pcmcia
peci
perf arm64 fixes for -rc1 2024-05-23 12:09:22 -07:00
phy phy-for-6.10 2024-05-21 11:19:18 -07:00
pinctrl - New Device Support 2024-05-22 10:41:14 -07:00
platform Driver core changes for 6.10-rc1 2024-05-22 12:13:40 -07:00
pmdomain pmdomain providers: 2024-05-27 08:18:31 -07:00
pnp
power I2C core removes an argument from the i2c_mux_add_adapter() call to 2024-05-20 08:55:18 -07:00
powercap
pps
ps3
ptp ptp: Fix error message on failed pin verification 2024-06-05 16:01:16 -07:00
pwm pwm: pca9685: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-10 07:30:27 +02:00
rapidio rapidio: remove choice for enumeration 2024-05-14 23:36:19 +09:00
ras
regulator regulator: Fixes for v6.10 2024-05-23 13:39:42 -07:00
remoteproc remoteproc: k3-r5: Jump to error handling labels in start/stop errors 2024-05-06 13:34:12 -06:00
reset I'm actually surprised this time. There aren't any new Qualcomm SoC clk 2024-05-18 12:48:37 -07:00
rpmsg virtio: features, fixes, cleanups 2024-05-23 12:04:36 -07:00
rtc pcf8563: add wakeup-source support 2024-05-07 23:40:46 +02:00
s390 more s390 updates for 6.10 merge window 2024-05-21 12:09:36 -07:00
sbus
scsi virtio: features, fixes, cleanups 2024-05-23 12:04:36 -07:00
sh
siox
slimbus Linux 6.9-rc7 2024-05-08 19:21:51 +01:00
soc tracing/treewide: Remove second parameter of __assign_str() 2024-05-22 20:14:47 -04:00
soundwire soundwire updates for 6.10 2024-05-21 11:23:36 -07:00
spi spi: Updates for v6.10 2024-05-14 14:41:01 -07:00
spmi spmi: pmic-arb: Add multi bus support 2024-05-08 19:46:11 +01:00
ssb
staging Staging driver changes for 6.10-rc1 2024-05-22 12:11:48 -07:00
target Assorted commits that had missed the last merge window... 2024-05-21 13:11:44 -07:00
tc
tee
thermal tracing/treewide: Remove second parameter of __assign_str() 2024-05-22 20:14:47 -04:00
thunderbolt thunderbolt: Changes for v6.10 merge window 2024-05-10 10:25:22 +01:00
tty TTY/Serial fixes for 6.10-rc1 2024-05-24 08:38:28 -07:00
ufs SCSI misc on 20240514 2024-05-14 18:25:53 -07:00
uio
usb tracing/treewide: Remove second parameter of __assign_str() 2024-05-22 20:14:47 -04:00
vdpa Merge tag 'stable/vduse-virtio-net' into vhost 2024-05-22 08:32:48 -04:00
vfio VFIO updates for v6.10-rc1 2024-05-20 14:56:50 -07:00
vhost virtio: features, fixes, cleanups 2024-05-23 12:04:36 -07:00
video - Fix-ups 2024-05-22 10:45:12 -07:00
virt The usual shower of singleton fixes and minor series all over MM, 2024-05-19 09:21:03 -07:00
virtio virtio: features, fixes, cleanups 2024-05-23 12:04:36 -07:00
w1
watchdog watchdog: LENOVO_SE10_WDT should depend on X86 && DMI 2024-05-11 11:32:06 +02:00
xen xen: branch for v6.10-rc1 2024-05-24 10:24:49 -07:00
zorro
Kconfig
Makefile kbuild: use $(src) instead of $(srctree)/$(src) for source directory 2024-05-10 04:34:52 +09:00