linux-stable/drivers/net/ethernet/mellanox/mlx5/core
Maxim Mikityanskiy 36d45fb9d2 net/mlx5e: Fix repeated XSK usage on one channel
After an XSK is closed, the relevant structures in the channel are not
zeroed. If an XSK is opened the second time on the same channel without
recreating channels, the stray values in the structures will lead to
incorrect operation of queues, which causes CQE errors, and the new
socket doesn't work at all.

This patch fixes the issue by explicitly zeroing XSK-related structs in
the channel on XSK close. Note that those structs are zeroed on channel
creation, and usually a configuration change (XDP program is set)
happens on XSK open, which leads to recreating channels, so typical XSK
usecases don't suffer from this issue. However, if XSKs are opened and
closed on the same channel without removing the XDP program, this bug
reproduces.

Fixes: db05815b36 ("net/mlx5e: Add XSK zero-copy support")
Signed-off-by: Maxim Mikityanskiy <maximmi@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
2020-06-11 15:37:55 -07:00
..
accel net/mlx5: Accel: fpga tls fix cast to __be64 and incorrect argument types 2020-05-29 21:20:22 -07:00
diag net/mlx5e: Optimize performance for IPv4/IPv6 ethertype 2020-05-27 18:13:51 -07:00
en net/mlx5e: Fix repeated XSK usage on one channel 2020-06-11 15:37:55 -07:00
en_accel net/mlx5: Accel: fpga tls fix cast to __be64 and incorrect argument types 2020-05-29 21:20:22 -07:00
esw net/mlx5: E-Switch, Alloc and free unique metadata for match 2020-05-27 18:13:49 -07:00
fpga net/mlx5: Accel: fpga tls fix cast to __be64 and incorrect argument types 2020-05-29 21:20:22 -07:00
ipoib Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-05-24 13:47:27 -07:00
lib net/mlx5e: Add support for hw encapsulation of MPLS over UDP 2020-05-22 16:46:18 -07:00
steering net/mlx5: DR, Fix freeing in dr_create_rc_qp() 2020-06-11 15:37:53 -07:00
Kconfig net/mlx5: Kconfig: Fix spelling typo 2020-05-29 21:20:19 -07:00
Makefile net/mlx5e: Use netdev events to set/del egress acl forward-to-vport rule 2020-05-27 18:13:47 -07:00
alloc.c net/mlx5: limit the function in local scope 2020-01-07 10:40:22 -08:00
cmd.c net/mlx5: cmd: Fix memset with byte count warning 2020-05-29 21:20:21 -07:00
cq.c net/mlx5: Update cq.c to new cmd interface 2020-04-23 21:42:03 +03:00
debugfs.c net/mlx5: cmd: Fix memset with byte count warning 2020-05-29 21:20:21 -07:00
dev.c net/mlx5: Simplify mlx5_register_device to return void 2020-03-25 23:19:13 -07:00
devlink.c net/mlx5e: Add missing release firmware call 2020-04-08 15:46:41 -07:00
devlink.h net/mlx5e: Add devlink fdb_large_groups parameter 2020-02-27 16:40:19 -08:00
ecpf.c net/mlx5: Update ecpf.c to new cmd interface 2020-04-23 21:42:04 +03:00
ecpf.h
en.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-05-31 17:48:46 -07:00
en_arfs.c net/mlx5: Accept flow rules without match 2020-03-13 16:26:17 -07:00
en_common.c net/mlx5e: IPoIB, Enable loopback packets for IPoIB interfaces 2020-05-15 15:44:30 -07:00
en_dcbnl.c net/mlx5e: Make mlx5e_dcbnl_ops static 2020-05-29 21:20:23 -07:00
en_dim.c
en_ethtool.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-05-31 17:48:46 -07:00
en_fs.c net/mlx5e: Fix hairpin RSS table size 2020-01-06 15:30:05 -08:00
en_fs_ethtool.c net/mlx5: Update transobj.c new cmd interface 2020-04-23 21:42:16 +03:00
en_main.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-05-31 17:48:46 -07:00
en_rep.c mlx5: update indirect block support 2020-06-01 11:41:50 -07:00
en_rep.h mlx5: update indirect block support 2020-06-01 11:41:50 -07:00
en_rx.c mlx5: fix xdp data_meta setup in mlx5e_fill_xdp_buff 2020-05-29 21:20:19 -07:00
en_selftest.c net/mlx5e: IPoIB, Enable loopback packets for IPoIB interfaces 2020-05-15 15:44:30 -07:00
en_stats.c Merge branch 'mlx5-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux 2020-04-30 09:49:53 -07:00
en_stats.h net/mlx5e: IPSec, Expose IPsec HW stat only for supporting HW 2020-04-20 14:20:19 -07:00
en_tc.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-05-31 17:48:46 -07:00
en_tc.h net/mlx5e: Optimize performance for IPv4/IPv6 ethertype 2020-05-27 18:13:51 -07:00
en_tx.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-05-24 13:47:27 -07:00
en_txrx.c net/mlx5e: Enhance ICOSQ WQE info fields 2020-05-09 01:05:42 -07:00
eq.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-05-24 13:47:27 -07:00
eswitch.c net/mlx5: E-Switch, Alloc and free unique metadata for match 2020-05-27 18:13:49 -07:00
eswitch.h net/mlx5: E-Switch, Alloc and free unique metadata for match 2020-05-27 18:13:49 -07:00
eswitch_offloads.c net/mlx5: E-Switch, Alloc and free unique metadata for match 2020-05-27 18:13:49 -07:00
eswitch_offloads_termtbl.c net/mlx5e: Add support for offloading traffic from uplink to uplink 2020-03-17 19:41:37 -07:00
events.c net/mlx5: Fix memory leak in mlx5_events_init 2020-05-22 17:28:46 -07:00
fs_cmd.c net/mlx5: Add support for RDMA TX FT headers modifying 2020-05-18 09:21:46 -07:00
fs_cmd.h
fs_core.c Merge branch 'mlx5-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux 2020-05-29 14:38:57 -07:00
fs_core.h net/mlx5: Add support in forward to namespace 2020-05-13 18:56:31 +03:00
fs_counters.c net/mlx5e: Replace zero-length array with flexible-array member 2020-02-19 09:13:10 +02:00
fw.c net/mlx5: Update fw.c new cmd interface 2020-04-23 21:42:07 +03:00
health.c net/mlx5: Fix fatal error handling during device load 2020-06-11 15:37:51 -07:00
lag.c net/mlx5: Add support to get lag physical port 2020-05-01 12:15:38 -07:00
lag.h mlx5: register lag notifier for init network namespace only 2020-02-27 11:16:14 -08:00
lag_mp.c net/mlx5: Use a separate work queue for fib event handling 2020-03-29 23:42:20 -07:00
lag_mp.h net/mlx5: Use a separate work queue for fib event handling 2020-03-29 23:42:20 -07:00
main.c net/mlx5: drain health workqueue in case of driver load error 2020-06-11 15:37:48 -07:00
mcg.c net/mlx5: Update mcg.c new cmd interface 2020-04-23 21:42:11 +03:00
mlx5_core.h net/mlx5: Move internal timer read function to clock library 2020-05-15 15:44:25 -07:00
mr.c net/mlx5: Update mr.c new cmd interface 2020-04-23 21:42:12 +03:00
pagealloc.c net/mlx5: Fix a bug of releasing wrong chunks on > 4K page size systems 2020-05-15 15:44:15 -07:00
pci_irq.c
pd.c net/mlx5: Update pd.c new cmd interface 2020-04-23 21:42:13 +03:00
port.c net/mlx5: Update port.c new cmd interface 2020-04-23 21:42:15 +03:00
rdma.c
rdma.h
rl.c net/mlx5: Update rl.c new cmd interface 2020-04-23 21:42:14 +03:00
sriov.c net/mlx5: E-switch, Protect eswitch mode changes 2020-03-25 23:19:25 -07:00
transobj.c net/mlx5: Update transobj.c new cmd interface 2020-04-23 21:42:16 +03:00
uar.c net/mlx5: Update uar.c new cmd interface 2020-04-23 21:42:14 +03:00
vport.c net/mlx5: Update vport.c to new cmd interface 2020-04-23 21:42:02 +03:00
wq.c net/mlx5e: Reset RQ doorbell counter before moving RQ state from RST to RDY 2020-02-18 19:01:19 -08:00
wq.h net/mlx5e: Reset RQ doorbell counter before moving RQ state from RST to RDY 2020-02-18 19:01:19 -08:00