From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Falcon Subject: [PATCH net-next 0/8] ibmvnic: Failover hardening Date: Wed, 23 May 2018 13:37:54 -0500 Message-ID: <1527100682-23099-1-git-send-email-tlfalcon@linux.vnet.ibm.com> Cc: nfont@linux.vnet.ibm.com, jallen@linux.vnet.ibm.com, linuxppc-dev@lists.ozlabs.org, Thomas Falcon To: netdev@vger.kernel.org Return-path: Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:49618 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933887AbeEWStY (ORCPT ); Wed, 23 May 2018 14:49:24 -0400 Received: from pps.filterd (m0098410.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w4NIhphq002331 for ; Wed, 23 May 2018 14:49:24 -0400 Received: from e37.co.us.ibm.com (e37.co.us.ibm.com [32.97.110.158]) by mx0a-001b2d01.pphosted.com with ESMTP id 2j5akja09m-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 23 May 2018 14:49:23 -0400 Received: from localhost by e37.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 23 May 2018 12:49:22 -0600 Sender: netdev-owner@vger.kernel.org List-ID: 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. Thomas Falcon (8): ibmvnic: Mark NAPI flag as disabled when released ibmvnic: Introduce active CRQ state ibmvnic: Check CRQ command return codes ibmvnic: Return error code if init interrupted by transport event ibmvnic: Handle error case when setting link state ibmvnic: Create separate initialization routine for resets ibmvnic: Set resetting state at earliest possible point ibmvnic: Introduce hard reset recovery drivers/net/ethernet/ibm/ibmvnic.c | 223 +++++++++++++++++++++++++++++++++---- drivers/net/ethernet/ibm/ibmvnic.h | 2 + 2 files changed, 202 insertions(+), 23 deletions(-) -- 2.7.5