]> git.baikalelectronics.ru Git - kernel.git/commit
i40e: don't report link up for a VF who hasn't enabled queues
authorJacob Keller <jacob.e.keller@intel.com>
Tue, 2 Jul 2019 12:22:54 +0000 (08:22 -0400)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Mon, 5 Aug 2019 18:42:05 +0000 (11:42 -0700)
commit4c32a69188a0c331ef870309d2948cfc86ab7a34
treeac22e4f0947660c0c1b5a645694ac963697ee4f1
parent0ad5856d02bdda39fce9a2157d9432e493fc47a6
i40e: don't report link up for a VF who hasn't enabled queues

Commit f49b51e4d0fd ("i40e: update VFs of link state after
GET_VF_RESOURCES") modified the PF driver to notify a VF of
its link status immediately after it requests resources.

This was intended to fix reporting on VF drivers, so that they would
properly report link status.

However, some older VF drivers do not respond well to receiving a link
up notification before queues are enabled. This can cause their state
machine to think that it is safe to send traffic. This results in a Tx
hang on the VF.

More recent versions of the old i40evf and all versions of iavf are
resilient to these early link status messages. However, if a VM happens
to run an older version of the VF driver, this can be problematic.

Record whether the PF has actually enabled queues for the VF. When
reporting link status, always report link down if the queues aren't
enabled. In this way, the VF driver will never receive a link up
notification until after its queues are enabled.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h