linux_dsm_epyc7002/drivers/net/ethernet/mellanox/mlx4
Jack Morgenstein 3b01fe7f91 net/mlx4_core: Use-after-free causes a resource leak in flow-steering detach
mlx4_QP_FLOW_STEERING_DETACH_wrapper first removes the steering
rule (which results in freeing the rule structure), and then
references a field in this struct (the qp number) when releasing the
busy-status on the rule's qp.

Since this memory was freed, it could reallocated and changed.
Therefore, the qp number in the struct may be incorrect,
so that we are releasing the incorrect qp. This leaves the rule's qp
in the busy state (and could possibly release an incorrect qp as well).

Fix this by saving the qp number in a local variable, for use after
removing the steering rule.

Fixes: 2c473ae7e5 ("net/mlx4_core: Disallow releasing VF QPs which have steering rules")
Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-12-29 14:17:40 -05: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 ethernet :mellanox :mlx4: Replace pci_pool_alloc by pci_pool_zalloc 2016-11-30 14:56:36 -05: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 clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
en_cq.c net/mlx4_en: remove napi_hash_del() call 2016-11-17 11:17:05 -05:00
en_dcb_nl.c net/mlx4_en: Fixes for DCBX 2016-09-11 19:40:26 -07:00
en_ethtool.c mlx4: give precise rx/tx bytes/packets counters 2016-11-29 13:36:34 -05:00
en_main.c net/mlx4_en: Refactor the XDP forwarding rings scheme 2016-11-02 15:07:11 -04:00
en_netdev.c net/mlx4_en: Fix user prio field in XDP forward 2016-12-23 17:53:47 -05:00
en_port.c mlx4: fix use-after-free in mlx4_en_fold_software_stats() 2016-12-02 13:33:32 -05: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 mlx4: xdp: Reserve headroom for receiving packet when XDP prog is active 2016-12-08 14:25:13 -05:00
en_selftest.c mlx4: use reset to set mac header 2016-12-03 15:49:16 -05:00
en_tx.c mlx4: xdp: Reserve headroom for receiving packet when XDP prog is active 2016-12-08 14:25:13 -05:00
eq.c net/mlx4: Fix firmware command timeout during interrupt test 2016-10-29 16:23:48 -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 net/mlx4_core: Change the default value of enable_qos 2016-10-29 16:23:48 -04: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
intf.c net/mlx4_core: Check device state before unregistering it 2016-07-25 18:00:25 -07:00
Kconfig ptp_clock: Allow for it to be optional 2016-11-16 09:26:34 +01:00
main.c clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
Makefile net/mlx4: New file for QoS related firmware commands 2015-04-02 16:25:02 -04:00
mcg.c net/mlx4: Fix uninitialized fields in rule when adding promiscuous mode to device managed flow steering 2016-11-28 15:33:46 -05:00
mlx4_en.h mlx4: xdp: Reserve headroom for receiving packet when XDP prog is active 2016-12-08 14:25:13 -05:00
mlx4_stats.h net/mlx4_en: Add ethtool statistics for XDP cases 2016-11-02 15:07:11 -04:00
mlx4.h net/mlx4_en: Fix potential deadlock in port statistics flow 2016-10-29 16:23:48 -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: Fix potential deadlock in port statistics flow 2016-10-29 16:23:48 -04: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: Use-after-free causes a resource leak in flow-steering detach 2016-12-29 14:17:40 -05: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