Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp711324ybt; Wed, 17 Jun 2020 11:54:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzKskOJGZB4h0VU8uUl9OE7rcq8DMBz8CM3s0ZuMMUQ/1YNdMKQJkUmlfPgIrO7+Tn8mSNB X-Received: by 2002:a05:6402:1592:: with SMTP id c18mr630763edv.40.1592420067869; Wed, 17 Jun 2020 11:54:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592420067; cv=none; d=google.com; s=arc-20160816; b=B2IQSAaOjQ0QfvYklqH2wY1S9eGh1zLYxFoUmrXOpI6AB9JQjCj+2AsYFNTdmzPzHK M3CcOM3SeDjOr69UZahlXiU/kzU3c/0MH9AzqN3HBObKmUZkRBNlbH6fkRrjvg7Ao917 +VzFXynL5UK/PJYaXeyMY51B9QFEcarstCw2hDei0AcUjwRvpa+UnZstlv+zgroXl1si Pq8sMAsECR6JWN8TMIg3tdavt6V6PRk9cFxOlbfXyVdjVgcjFavqoSw3/6nqqqDBTakx qCw0hG2W0IHDUy0cZ0vpoUVqDiERvdDbFVstsLWfiiUBc25Ho1U8i3KqgDPX+aBJgUD7 8k8w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=XsVUg48P99PfzV5W5S/IP+w3skJAthL1Di7msEiFu9w=; b=IaH8GeETrRfuWZbLjmQEhwbSLwyAmF3O7Ol5z6TXdoSS5/Za+WCSEM+Dm+AbMdyKur 1oLXJ6ldT5y8vTfbixLCwmBtv5bkDlnyJx/MOzufjeeciLZnAdOzIijt3or6xtKOudQU 175sE6UA8tMp5mUAJjIuVxYDy6bzyBMhImcVSh4Mv2dJYSg2C0zgtpQpHMyc76SGlwvH TQcipkFE28a7jS+54xRqmfVa4R0SHcA/1xVAwLmtBYMgGsxJNwDpd6APz5+F10ZTekIw 5V8TFPPL/MynN48G2mvWQwRbwOUcurxlP6KnDuL7ICbQVDtpnFoz66DkgQ6eM57U7RyE tUew== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k11si457069eji.338.2020.06.17.11.54.04; Wed, 17 Jun 2020 11:54:27 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727928AbgFQSvb (ORCPT + 99 others); Wed, 17 Jun 2020 14:51:31 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:58566 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726851AbgFQSva (ORCPT ); Wed, 17 Jun 2020 14:51:30 -0400 Received: from pps.filterd (m0098410.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 05HIkML5029791; Wed, 17 Jun 2020 14:51:29 -0400 Received: from ppma01wdc.us.ibm.com (fd.55.37a9.ip4.static.sl-reverse.com [169.55.85.253]) by mx0a-001b2d01.pphosted.com with ESMTP id 31qg6p9vu7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 17 Jun 2020 14:51:29 -0400 Received: from pps.filterd (ppma01wdc.us.ibm.com [127.0.0.1]) by ppma01wdc.us.ibm.com (8.16.0.42/8.16.0.42) with SMTP id 05HITRlG030842; Wed, 17 Jun 2020 18:51:28 GMT Received: from b01cxnp22036.gho.pok.ibm.com (b01cxnp22036.gho.pok.ibm.com [9.57.198.26]) by ppma01wdc.us.ibm.com with ESMTP id 31q6bd5jhn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 17 Jun 2020 18:51:28 +0000 Received: from b01ledav001.gho.pok.ibm.com (b01ledav001.gho.pok.ibm.com [9.57.199.106]) by b01cxnp22036.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 05HIpRm212517910 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Jun 2020 18:51:27 GMT Received: from b01ledav001.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8CDB428058; Wed, 17 Jun 2020 18:51:27 +0000 (GMT) Received: from b01ledav001.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 747F52805A; Wed, 17 Jun 2020 18:51:27 +0000 (GMT) Received: from localhost.localdomain (unknown [9.114.224.51]) by b01ledav001.gho.pok.ibm.com (Postfix) with ESMTP; Wed, 17 Jun 2020 18:51:27 +0000 (GMT) From: David Christensen To: netdev@vger.kernel.org, Siva Reddy Kallam , Prashant Sreedharan , Michael Chan Cc: linux-kernel@vger.kernel.org, David Christensen Subject: [PATCH v2] tg3: driver sleeps indefinitely when EEH errors exceed eeh_max_freezes Date: Wed, 17 Jun 2020 11:51:17 -0700 Message-Id: <20200617185117.732849-1-drc@linux.vnet.ibm.com> X-Mailer: git-send-email 2.18.2 In-Reply-To: <20200615190119.382589-1-drc@linux.vnet.ibm.com> References: <20200615190119.382589-1-drc@linux.vnet.ibm.com> X-TM-AS-GCONF: 00 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.216,18.0.687 definitions=2020-06-17_07:2020-06-17,2020-06-17 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 clxscore=1015 mlxscore=0 lowpriorityscore=0 mlxlogscore=999 spamscore=0 cotscore=-2147483648 bulkscore=0 phishscore=0 impostorscore=0 adultscore=0 malwarescore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2004280000 definitions=main-2006170142 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The driver function tg3_io_error_detected() calls napi_disable twice, without an intervening napi_enable, when the number of EEH errors exceeds eeh_max_freezes, resulting in an indefinite sleep while holding rtnl_lock. Add check for pcierr_recovery which skips code already executed for the "Frozen" state. Signed-off-by: David Christensen --- drivers/net/ethernet/broadcom/tg3.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c index 7a3b22b35238..ebff1fc0d8ce 100644 --- a/drivers/net/ethernet/broadcom/tg3.c +++ b/drivers/net/ethernet/broadcom/tg3.c @@ -18168,8 +18168,8 @@ static pci_ers_result_t tg3_io_error_detected(struct pci_dev *pdev, rtnl_lock(); - /* We probably don't have netdev yet */ - if (!netdev || !netif_running(netdev)) + /* Could be second call or maybe we don't have netdev yet */ + if (!netdev || tp->pcierr_recovery || !netif_running(netdev)) goto done; /* We needn't recover from permanent error */ -- 2.18.2