aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c
diff options
context:
space:
mode:
authorMitch A Williams <mitch.a.williams@intel.com>2014-12-09 08:53:08 +0000
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2015-01-13 11:47:44 -0800
commit0758e7cb5f61a61dffe814bc91ebb4ea8e5cc534 (patch)
tree52e507b4abe7d55d6498fa7f762840cd6111b78e /drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c
parenti40evf: enable interrupt 0 appropriately (diff)
downloadlinux-dev-0758e7cb5f61a61dffe814bc91ebb4ea8e5cc534.tar.xz
linux-dev-0758e7cb5f61a61dffe814bc91ebb4ea8e5cc534.zip
i40evf: kick a stalled admin queue
On some versions of the firmware, the VF admin send queue may become stalled. In this case, the easiest solution is to just place another descriptor on the queue; the firmware will then process both requests. The early init code already accounts for this, but the runtime code does not. In the watchdog task, check for the stall condition, and if it's found, send our API version to the PF. When the PF replies, just ignore the reply. Change-ID: I380d78185a4f284d649c44d263e648afc9b4d50c Signed-off-by: Mitch Williams <mitch.a.williams@intel.com> Acked-by: Shannon Nelson <shannon.nelson@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to '')
-rw-r--r--drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c b/drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c
index 3aeb633e6bc2..3f0c85ecbca6 100644
--- a/drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c
+++ b/drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c
@@ -720,6 +720,9 @@ void i40evf_virtchnl_completion(struct i40evf_adapter *adapter,
__func__, v_retval, v_opcode);
}
switch (v_opcode) {
+ case I40E_VIRTCHNL_OP_VERSION:
+ /* no action, but also not an error */
+ break;
case I40E_VIRTCHNL_OP_GET_STATS: {
struct i40e_eth_stats *stats =
(struct i40e_eth_stats *)msg;