linux_dsm_epyc7002/drivers/net/ethernet/mellanox/mlx4
Brenden Blanco 958b3d396d net/mlx4_en: fixup xdp tx irq to match rx
In cases where the number of tx rings is not a multiple of the number of
rx rings, the tx completion event will be handled on a different core
from the transmit and population of the ring. Races on the ring will
lead to a double-free of the page, and possibly other corruption.

The rings are initialized by default with a valid multiple of rings,
based on the number of cpus, therefore an invalid configuration requires
ethtool to change the ring layout. For instance 'ethtool -L eth0 rx 9 tx
8' will cause packets received on rx0, and XDP_TX'd to tx48, to be
completed on cpu3 (48 % 9 == 3).

Resolve this discrepancy by shifting the irq for the xdp tx queues to
start again from 0, modulo rx_ring_num.

Fixes: 9ecc2d8617 ("net/mlx4_en: add xdp forwarding and data write support")
Reported-by: Jesper Dangaard Brouer <brouer@redhat.com>
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-10-14 11:13:00 -04:00
..
alloc.c net/mlx4: Avoid wrong virtual mappings 2016-05-05 23:23:05 -04:00
catas.c net/mlx4_core: Do not BUG_ON during reset when PCI is offline 2016-02-17 10:29:26 -05:00
cmd.c net/mlx4: Add VF vlan protocol 802.1ad support 2016-09-24 08:01:27 -04:00
cq.c net/mlx4_core: Set UAR page size to 4KB regardless of system page size 2016-02-17 10:29:27 -05:00
en_clock.c ptp_clock: future-proofing drivers against PTP subsystem becoming optional 2016-09-22 02:18:33 -04:00
en_cq.c net/mlx4_en: fixup xdp tx irq to match rx 2016-10-14 11:13:00 -04:00
en_dcb_nl.c net/mlx4_en: Fixes for DCBX 2016-09-11 19:40:26 -07:00
en_ethtool.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-07-24 00:53:32 -04:00
en_main.c net: mlx4: use new ETHTOOL_G/SSETTINGS API 2016-02-25 22:06:47 -05:00
en_netdev.c net/mlx4: Add VF vlan protocol 802.1ad support 2016-09-24 08:01:27 -04:00
en_port.c net/mlx4_en: get rid of private net_device_stats 2016-05-25 22:15:50 -07:00
en_port.h net/mlx4_en: Use PTYS register to query ethtool settings 2014-10-28 17:18:00 -04:00
en_resources.c net/mlx4: Avoid wrong virtual mappings 2016-05-05 23:23:05 -04:00
en_rx.c net/mlx4_en: Fix wrong indentation 2016-09-21 21:52:43 -04:00
en_selftest.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-03-03 21:16:48 -05:00
en_tx.c net/mlx4_en: Fix panic on xmit while port is down 2016-09-11 19:40:26 -07:00
eq.c net/mlx4_en: fix off by one in error handling 2016-09-16 04:16:22 -04:00
fw_qos.c net/mlx4: Add mlx4_SET_VPORT_QOS implementation 2015-04-02 16:25:02 -04:00
fw_qos.h net/mlx4: Added qos_vport QP configuration in VST mode 2015-04-02 16:25:03 -04:00
fw.c Merge of primary rdma-core code for 4.9 2016-10-09 17:04:33 -07:00
fw.h mlx4: remove unused fields 2016-09-30 01:56:41 -04:00
icm.c net/mlx4_core: Maintain a persistent memory for mlx4 device 2015-01-25 14:43:13 -08:00
icm.h mlx4_core: Fix GFP flags parameters to be gfp_t 2014-06-04 10:19:13 -07:00
intf.c net/mlx4_core: Check device state before unregistering it 2016-07-25 18:00:25 -07:00
Kconfig mlx4_en: Replace ndo_add/del_vxlan_port with ndo_add/del_udp_enc_port 2016-06-17 20:23:31 -07:00
main.c net/mlx4_core: Fix to clean devlink resources 2016-09-22 01:41:27 -04:00
Makefile net/mlx4: New file for QoS related firmware commands 2015-04-02 16:25:02 -04:00
mcg.c net/mlx4: Fix some indent inconsistancy 2016-07-04 15:22:33 -07:00
mlx4_en.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-09-12 15:52:44 -07:00
mlx4_stats.h net/mlx4_en: Fix off-by-four in ethtool 2015-06-24 00:42:32 -07:00
mlx4.h net/mlx4: Add VF vlan protocol 802.1ad support 2016-09-24 08:01:27 -04:00
mr.c net/mlx4: Fix some indent inconsistancy 2016-07-04 15:22:33 -07:00
pd.c io-mapping: Specify mapping size for io_mapping_map_wc() 2016-04-28 12:17:32 +01:00
port.c net/mlx4_en: Fixes for DCBX 2016-09-11 19:40:26 -07:00
profile.c net/mlx4_core: use swap() in mlx4_make_profile() 2015-06-11 15:19:41 -07:00
qp.c net/mlx4_core: Add support for RoCE v2 entropy 2016-01-19 15:35:00 -05:00
reset.c net/mlx4_core: Maintain a persistent memory for mlx4 device 2015-01-25 14:43:13 -08:00
resource_tracker.c net/mlx4_core: Preparation for VF vlan protocol 802.1ad 2016-09-24 08:01:26 -04:00
sense.c
srq.c net/mlx4_core: Use RCU to perform radix tree lookup for SRQ 2016-09-21 21:52:43 -04:00