Commit 49a473f5 authored by David S. Miller's avatar David S. Miller

Merge branch 'ibmvnic-Failover-hardening'

Thomas Falcon says:

====================
ibmvnic: Failover hardening

Introduce additional transport event hardening to handle
events during device reset. In the driver's current state,
if a transport event is received during device reset, it can
cause the device to become unresponsive as invalid operations
are processed as the backing device context changes. After
a transport event, the device expects a request to begin the
initialization process. If the driver is still processing
a previously queued device reset in this state, it is likely
to fail as firmware will reject any commands other than the
one to initialize the client driver's Command-Response Queue.

Instead of failing and becoming dormant, the driver will make
one more attempt to recover and continue operation. This is
achieved by setting a state flag, which if true will direct
the driver to clean up all allocated resources and perform
a hard reset in an attempt to bring the driver back to an
operational state.
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 180f848b 2770a798
This diff is collapsed.
...@@ -865,6 +865,7 @@ struct ibmvnic_crq_queue { ...@@ -865,6 +865,7 @@ struct ibmvnic_crq_queue {
int size, cur; int size, cur;
dma_addr_t msg_token; dma_addr_t msg_token;
spinlock_t lock; spinlock_t lock;
bool active;
}; };
union sub_crq { union sub_crq {
...@@ -1108,6 +1109,7 @@ struct ibmvnic_adapter { ...@@ -1108,6 +1109,7 @@ struct ibmvnic_adapter {
bool mac_change_pending; bool mac_change_pending;
bool failover_pending; bool failover_pending;
bool force_reset_recovery;
struct ibmvnic_tunables desired; struct ibmvnic_tunables desired;
struct ibmvnic_tunables fallback; struct ibmvnic_tunables fallback;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment