ibmvnic: Fix rx queue cleanup for non-fatal resets
authorJohn Allen <jallen@linux.vnet.ibm.com>
Tue, 6 Feb 2018 22:21:49 +0000 (16:21 -0600)
committerDavid S. Miller <davem@davemloft.net>
Thu, 8 Feb 2018 02:55:33 +0000 (21:55 -0500)
At some point, a check was added to exit the polling routine during resets.
This makes sense for most reset conditions, but for a non-fatal error, we
expect the polling routine to continue running to properly clean up the rx
queues. This patch checks if we are performing a non-fatal reset and if we
are, continues normal polling operation.

Signed-off-by: John Allen <jallen@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ibm/ibmvnic.c

index afaf29b201dc60fc44cc97cea8a6cd58b43042b7..8dc8fc50375047d49efe8426bb5ad006ccab46de 100644 (file)
@@ -1831,7 +1831,8 @@ restart_poll:
                u16 offset;
                u8 flags = 0;
 
-               if (unlikely(adapter->resetting)) {
+               if (unlikely(adapter->resetting &&
+                            adapter->reset_reason != VNIC_RESET_NON_FATAL)) {
                        enable_scrq_irq(adapter, adapter->rx_scrq[scrq_num]);
                        napi_complete_done(napi, frames_processed);
                        return frames_processed;