linux/drivers/net/ethernet/intel/ice
Anirudh Venkataramanan fd2a981777 ice: Prevent control queue operations during reset
Once reset is issued, the driver loses all control queue interfaces.
Exercising control queue operations during reset is incorrect and
may result in long timeouts.

This patch introduces a new field 'reset_ongoing' in the hw structure.
This is set to 1 by the core driver when it receives a reset interrupt.
ice_sq_send_cmd checks reset_ongoing before actually issuing the control
queue operation. If a reset is in progress, it returns a soft error code
(ICE_ERR_RESET_PENDING) to the caller. The caller may or may not have to
take any action based on this return. Once the driver knows that the
reset is done, it has to set reset_ongoing back to 0. This will allow
control queue operations to be posted to the hardware again.

This "bail out" logic was specifically added to ice_sq_send_cmd (which
is pretty low level function) so that we have one solution in one place
that applies to all types of control queues.

Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com>
Tested-by: Tony Brelinski <tonyx.brelinski@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2018-08-28 10:20:00 -07:00
..
ice.h ice: Change struct members from bool to u8 2018-08-23 11:32:59 -07:00
ice_adminq_cmd.h ice: Updates to Tx scheduler code 2018-08-28 09:58:13 -07:00
ice_common.c ice: Update request resource command to latest specification 2018-08-28 10:17:06 -07:00
ice_common.h ice: Update request resource command to latest specification 2018-08-28 10:17:06 -07:00
ice_controlq.c ice: Prevent control queue operations during reset 2018-08-28 10:20:00 -07:00
ice_controlq.h ice: Initialize PF and setup miscellaneous interrupt 2018-03-26 10:34:49 -07:00
ice_devids.h
ice_ethtool.c ice: Report stats for allocated queues via ethtool stats 2018-08-23 09:49:16 -07:00
ice_hw_autogen.h ice: Update to interrupts enabled in OICR 2018-08-23 11:26:47 -07:00
ice_lan_tx_rx.h ice: Rework flex descriptor programming 2018-08-28 09:18:47 -07:00
ice_main.c ice: Prevent control queue operations during reset 2018-08-28 10:20:00 -07:00
ice_nvm.c ice: Update request resource command to latest specification 2018-08-28 10:17:06 -07:00
ice_osdep.h ice: Start hardware initialization 2018-03-26 09:59:08 -07:00
ice_sched.c ice: Updates to Tx scheduler code 2018-08-28 09:58:13 -07:00
ice_sched.h ice: Update Tx scheduler tree for VSI multi-Tx queue support 2018-03-26 12:21:42 -07:00
ice_status.h ice: Prevent control queue operations during reset 2018-08-28 10:20:00 -07:00
ice_switch.c ice: Fix multiple static analyser warnings 2018-08-23 09:20:36 -07:00
ice_switch.h ice: Change struct members from bool to u8 2018-08-23 11:32:59 -07:00
ice_txrx.c ice: Add support for VLANs and offloads 2018-03-26 11:54:49 -07:00
ice_txrx.h ice: Change struct members from bool to u8 2018-08-23 11:32:59 -07:00
ice_type.h ice: Prevent control queue operations during reset 2018-08-28 10:20:00 -07:00
Makefile ice: Add stats and ethtool support 2018-03-26 12:11:19 -07:00