OpenCloudOS-Kernel/drivers/net/ethernet/intel/i40evf
Jesse Brandeburg 8ddb332689 i40e/i40evf: avoid mutex re-init
If the driver were to happen to have a mutex held while
the i40e_init_adminq call was called, the init_adminq might
inadvertently call mutex_init on a lock that was held
which is a violation of the calling semantics.

Fix this by avoiding adminq.c code allocating/freeing this memory, and
then do the same work only once in probe/remove.

Testing Hints (Required if no HSD): for VF, load i40evf in bare metal
and echo 32 > sriov_numvfs; echo 0 > sriov_numvfs in a loop.  Yes this
is a horrible thing to do.

Change-ID: Ida263c51b34e195252179e7e5e400d73a99be7a2
Reported-by: Stefan Assmann <sassmann@redhat.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2015-12-03 13:43:06 -08:00
..
Makefile i40evf: Fix the headers and update copyright year. 2014-05-21 01:54:43 -07:00
i40e_adminq.c i40e/i40evf: avoid mutex re-init 2015-12-03 13:43:06 -08:00
i40e_adminq.h i40e/i40evf: fix a potential type compare issue 2015-10-07 13:38:11 -07:00
i40e_adminq_cmd.h i40e/i40evf: Add new link status defines 2015-10-13 23:15:35 -07:00
i40e_alloc.h i40evf: Fix the headers and update copyright year. 2014-05-21 01:54:43 -07:00
i40e_common.c i40e: re-use %*ph specifier to hexdump a data 2015-10-23 05:22:13 -07:00
i40e_devids.h i40e/i40evf: split device ids into a separate file 2015-10-13 23:37:13 -07:00
i40e_hmc.h i40e: use BIT and BIT_ULL macros 2015-07-23 05:33:55 -07:00
i40e_lan_hmc.h i40e/i40evf: Big endian fixes for handling HMC 2014-06-26 04:44:57 -07:00
i40e_osdep.h move io-64-nonatomic*.h out of asm-generic 2015-10-15 00:21:07 +02:00
i40e_prototype.h i40e/i40evf: Add a workaround to drop all flow control frames 2015-10-23 04:17:55 -07:00
i40e_register.h i40evf: Remove PF specific register definitions from the VF 2015-08-26 15:05:17 -07:00
i40e_status.h i40evf: Fix the headers and update copyright year. 2014-05-21 01:54:43 -07:00
i40e_txrx.c i40e/i40evf: adjust interrupt throttle less frequently 2015-10-19 15:35:12 -07:00
i40e_txrx.h i40e/i40evf: adjust interrupt throttle less frequently 2015-10-19 15:35:12 -07:00
i40e_type.h i40e/i40evf: Fix an accidental error with BIT_ULL replacement 2015-10-19 15:35:45 -07:00
i40e_virtchnl.h i40e/i40evf: Add WB_ON_ITR offload support 2015-10-15 02:03:29 -07:00
i40evf.h i40e/i40evf: adjust interrupt throttle less frequently 2015-10-19 15:35:12 -07:00
i40evf_ethtool.c i40e: use BIT and BIT_ULL macros 2015-07-23 05:33:55 -07:00
i40evf_main.c i40e/i40evf: avoid mutex re-init 2015-12-03 13:43:06 -08:00
i40evf_virtchnl.c i40e/i40evf: Add WB_ON_ITR offload support 2015-10-15 02:03:29 -07:00