linux/drivers/net/ethernet/mellanox/mlx4
Wei Yang da1de8dfff net/mlx4_core: Keep only one driver entry release mlx4_priv
Following commit befdf89 "net/mlx4_core: Preserve pci_dev_data after
__mlx4_remove_one()", there are two mlx4 pci callbacks which will
attempt to release the mlx4_priv object -- .shutdown and .remove.

This leads to a use-after-free access to the already freed mlx4_priv
instance and trigger a "Kernel access of bad area" crash when both
.shutdown and .remove are called.

During reboot or kexec, .shutdown is called, with the VFs probed to
the host going through shutdown first and then the PF. Later, the PF
will trigger VFs' .remove since VFs still have driver attached.

Fix that by keeping only one driver entry which releases mlx4_priv.

Fixes: befdf89 ('net/mlx4_core: Preserve pci_dev_data after __mlx4_remove_one()')
CC: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Wei Yang <weiyang@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-06-11 00:32:46 -07:00
..
alloc.c mlx4_core: Roll back round robin bitmap allocation commit for CQs, SRQs, and MPTs 2013-12-09 21:12:13 -05:00
catas.c
cmd.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-05-24 00:32:30 -04:00
cq.c net/mlx4_core: Enforce irq affinity changes immediatly 2014-05-14 15:40:32 -04:00
en_clock.c ptp: drivers: set the number of programmable pins. 2014-03-21 14:21:14 -04:00
en_cq.c Revert "net/mlx4_en: Use affinity hint" 2014-06-02 00:18:48 -07:00
en_dcb_nl.c net/mlx4_en: Fix UP limit in ieee_ets->prio_tc 2014-03-02 20:04:00 -05:00
en_ethtool.c net: use SPEED_UNKNOWN and DUPLEX_UNKNOWN when appropriate 2014-06-06 16:24:07 -07:00
en_main.c mellanox: Logging message cleanups 2014-05-08 23:42:02 -04:00
en_netdev.c Revert "net/mlx4_en: Use affinity hint" 2014-06-02 00:18:48 -07:00
en_port.c net/mlx4_en: Move queue stopped/waked counters to be per ring 2014-03-02 20:04:01 -05:00
en_port.h
en_resources.c net/mlx4_en: Add netdev support for TCP/IP offloads of vxlan tunneling 2013-12-31 14:31:43 -05:00
en_rx.c net/mlx4_core: Enforce irq affinity changes immediatly 2014-05-14 15:40:32 -04:00
en_selftest.c net/mlx4_en: Fix selftest failing on non 10G link speed 2014-03-02 20:04:01 -05:00
en_tx.c net/mlx4_core: Enforce irq affinity changes immediatly 2014-05-14 15:40:32 -04:00
eq.c Revert "net/mlx4_en: Use affinity hint" 2014-06-02 00:18:48 -07:00
fw.c mellanox: Logging message cleanups 2014-05-08 23:42:02 -04:00
fw.h net/mlx4_core: Expose physical port id as PF/VF capability 2013-12-19 19:04:43 -05:00
icm.c net/mlx4_core: ICM pages are allocated on device NUMA node 2013-11-07 19:22:48 -05:00
icm.h
intf.c
Kconfig net/mlx4: Set proper build dependancy with vxlan 2014-04-01 16:25:51 -04:00
main.c net/mlx4_core: Keep only one driver entry release mlx4_priv 2014-06-11 00:32:46 -07:00
Makefile
mcg.c net/mlx4_core: Fix inaccurate return value of mlx4_flow_attach() 2014-05-14 15:40:34 -04:00
mlx4_en.h Revert "net/mlx4_en: Use affinity hint" 2014-06-02 00:18:48 -07:00
mlx4.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-06-03 23:32:12 -07:00
mr.c net/mlx4_core: Replace pr_warning() with pr_warn() 2014-05-22 17:17:29 -04:00
pd.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
port.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-06-03 23:32:12 -07:00
profile.c mellanox: Logging message cleanups 2014-05-08 23:42:02 -04:00
qp.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-05-24 00:32:30 -04:00
reset.c mellanox: Logging message cleanups 2014-05-08 23:42:02 -04:00
resource_tracker.c net/mlx4_core: Fix SRIOV free-pool management when enforcing resource quotas 2014-06-11 00:32:46 -07:00
sense.c
srq.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00