1
0
Fork 0
alistair23-linux/drivers/net/ethernet/intel/i40e
Jacob Keller 2ad1274fa3 i40e: don't report link up for a VF who hasn't enabled queues
Commit d3d657a908 ("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>
2019-08-05 11:42:05 -07:00
..
Makefile i40e: Implement DDP support in i40e driver 2019-04-16 15:10:21 -07:00
i40e.h i40e: fix incorrect ethtool statistics veb and veb.tc_ 2019-08-05 11:42:05 -07:00
i40e_adminq.c i40e: Improve AQ log granularity 2019-06-14 12:59:16 -07:00
i40e_adminq.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_adminq_cmd.h i40e: Add support for X710 B/P & SFP+ cards 2019-05-04 17:24:48 -07:00
i40e_alloc.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_client.c i40e: Use struct_size() in kzalloc() 2019-05-04 17:34:43 -07:00
i40e_client.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_common.c i40e: Fix for missing "link modes" info in ethtool 2019-06-26 09:18:54 -07:00
i40e_dcb.c i40e: Update i40e_init_dcb to return correct error 2019-04-16 15:10:47 -07:00
i40e_dcb.h i40e: Update i40e_init_dcb to return correct error 2019-04-16 15:10:47 -07:00
i40e_dcb_nl.c i40e/i40evf: cleanup incorrect function doxygen comments 2018-04-30 09:09:04 -07:00
i40e_ddp.c i40e: Implement DDP support in i40e driver 2019-04-16 15:10:21 -07:00
i40e_debugfs.c i40e: Fix descriptor count manipulation 2019-06-26 09:18:54 -07:00
i40e_devids.h i40e: Add support for X710 B/P & SFP+ cards 2019-05-04 17:24:48 -07:00
i40e_diag.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_diag.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_ethtool.c i40e: fix incorrect ethtool statistics veb and veb.tc_ 2019-08-05 11:42:05 -07:00
i40e_hmc.c i40e/i40evf: cleanup incorrect function doxygen comments 2018-04-30 09:09:04 -07:00
i40e_hmc.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_lan_hmc.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_lan_hmc.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_main.c i40e: Log disable-fw-lldp flag change by ethtool 2019-08-05 11:42:05 -07:00
i40e_nvm.c i40e: Revert ShadowRAM checksum calculation change 2019-05-04 17:30:58 -07:00
i40e_osdep.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_prototype.h i40e: fix 'Unknown bps' in dmesg for 2.5Gb/5Gb speeds 2019-06-26 09:18:54 -07:00
i40e_ptp.c i40e: fix incorrect function documentation comment 2019-06-26 09:18:54 -07:00
i40e_register.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_status.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_trace.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_txrx.c net: Use skb_frag_off accessors 2019-07-30 14:21:32 -07:00
i40e_txrx.h net: Use skb accessors in network drivers 2019-07-22 20:47:56 -07:00
i40e_txrx_common.h i40e: DRY rx_ptype handling code 2018-12-12 15:46:02 -08:00
i40e_type.h i40e: Add support for X710 B/P & SFP+ cards 2019-05-04 17:24:48 -07:00
i40e_virtchnl_pf.c i40e: don't report link up for a VF who hasn't enabled queues 2019-08-05 11:42:05 -07:00
i40e_virtchnl_pf.h i40e: don't report link up for a VF who hasn't enabled queues 2019-08-05 11:42:05 -07:00
i40e_xsk.c xsk: Return the whole xdp_desc from xsk_umem_consume_tx 2019-06-27 22:53:27 +02:00
i40e_xsk.h net: bpf: remove XDP_QUERY_XSK_UMEM enumerator 2019-02-15 15:14:22 +01:00