Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp4559439imm; Tue, 11 Sep 2018 13:58:55 -0700 (PDT) X-Google-Smtp-Source: ANB0Vdbzy87N30fjJflqfKgPesvX/dm29wF2HCAw6HAul1OU9YzkKvJ4tMwFLum7+GJXzHdt7ile X-Received: by 2002:a63:3642:: with SMTP id d63-v6mr29835756pga.231.1536699535330; Tue, 11 Sep 2018 13:58:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536699535; cv=none; d=google.com; s=arc-20160816; b=fx+ES6ZfbykCW+bxVGafVbrRT/LToiEOa14RyXTWYqicqOH0Qcq1/et7v+Nl6Kswk9 Eop+JEximI213IbSk9gWGpcuGyjKnMgz8GaUoeTRkznhMJXUtPtlXLNpG6Uminn1eKtU q8BgJ0aWABKiD/51E1MNa6mHe/Kr9NuQSEX55MxgNbFCgDX6dDKB/0UgxYJdkP4NmEpf 0YY+QP/jupBzVNaFMUzE+uCpG4MMDCHlTVQKwuI5rIYRH++tCckWPRbrbjpPGLsNIhkK Uij0vD3f3+VTcvMzYK6PgGAslmzvPq9U5XlBGmIKHabbfNAvFninwHthpG4rsFckAGIN wACw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature; bh=kTuy8XklDHHcbvh/JEhUxgm0szoY/mkybHB6eGIaP1w=; b=UfzUDn7yyJd7aYK31fKJmfr/LrUB+Qjok1XpJm98nd+g9UWggYusAG22xMyWZvZbF+ UJJQF9DEXCUaxm4xyjoe4UI1oTPbTLwo6kZIGtayP+TUDEHoycX4kw+NgLT5ru6O65Jo FBZlelQb7Js+civ8G5fgD3B6ysJek8YqJtpW872Pd5AQlu99xczrW73t3k2A0/r5sLET 5fJrU23PKBEW3Yt7ht7wqyKE1j222bKNbxW0QLtOMbVYdcIpnaweEIVylnDtjqNPt9sR BXNNw/RbitaZKKYsNZ02EliRH0o7REUD8dETZVG4fAGcpKSFfoBfRZzMDIMnrqWzHYSR qIBg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=KcOXaMOy; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e14-v6si21130821pgg.345.2018.09.11.13.58.40; Tue, 11 Sep 2018 13:58:55 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=KcOXaMOy; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727757AbeILB7Y (ORCPT + 99 others); Tue, 11 Sep 2018 21:59:24 -0400 Received: from mail-yb1-f196.google.com ([209.85.219.196]:34565 "EHLO mail-yb1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726850AbeILB7Y (ORCPT ); Tue, 11 Sep 2018 21:59:24 -0400 Received: by mail-yb1-f196.google.com with SMTP id t10-v6so9915503ybb.1 for ; Tue, 11 Sep 2018 13:58:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=kTuy8XklDHHcbvh/JEhUxgm0szoY/mkybHB6eGIaP1w=; b=KcOXaMOyqkL/46gwwxIkMOMUsm8xnC8HNpcxiahQJF4LKtKtZKZ6L3bPE5M5JwtESi 62fa7ivj3TPANvGmYgAcRS6e/4zIh7BZyGTwn9tj5M2HQz4n79UW3ZU2IwV484vjBtdX LpstCXGCzraCX102x4wmBF+hBDVOduGDK0JFk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=kTuy8XklDHHcbvh/JEhUxgm0szoY/mkybHB6eGIaP1w=; b=JQNSslsC0bY8uvoPniHYZEdS+ykGuRgHCb5WwHUmeVphCMzf0aPkT+ZW7Isbum7/0b XHnPWMZ+ANhRTgHpNxH/TNQEWTNLT8XsZ1U+eZ7PeKDxOpIbx+yG7uz4AEEJsZnD8+by Jk0oHcjav28xEjNvbmkxxwordkfeTyGE5BtBBHKyopxsleeZ+in5G+6xkGdgcooRXOIE 94TRrTe1R3kYdZW5mE/2BOs75C09lSf0m8k/sH3oAuur1bvhnEtNrrYvpDBsLVYLYas/ N+ByCgKxAYcYYEN/3zK2LGSHyQYTcm7N2dtHh+Ul3Hx8PSg6FS2QCgL8Qe2TARNzPiQ2 LSNw== X-Gm-Message-State: APzg51AxPpjIldXUOQsS/5eTPTJhHZ/vszH2hEoC976Sa1nz1kqx0eMO 8uP7aZB4rkQSzBC2DkjWm98vPMy7xaXrxh1uqLg51g== X-Received: by 2002:a25:e014:: with SMTP id x20-v6mr13741321ybg.46.1536699498581; Tue, 11 Sep 2018 13:58:18 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a25:5d0e:0:0:0:0:0 with HTTP; Tue, 11 Sep 2018 13:58:17 -0700 (PDT) In-Reply-To: <1536696866.3024.151.camel@codethink.co.uk> References: <20180823074918.641878835@linuxfoundation.org> <20180823074922.442947994@linuxfoundation.org> <1536696866.3024.151.camel@codethink.co.uk> From: Michael Chan Date: Tue, 11 Sep 2018 13:58:17 -0700 Message-ID: Subject: Re: [PATCH 4.4 51/79] bnxt_en: Fix for system hang if request_irq fails To: Ben Hutchings Cc: Vikas Gupta , stable@vger.kernel.org, "David S. Miller" , Sasha Levin , Greg Kroah-Hartman , LKML Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Sep 11, 2018 at 1:14 PM, Ben Hutchings wrote: > On Thu, 2018-08-23 at 09:53 +0200, Greg Kroah-Hartman wrote: >> 4.4-stable review patch. If anyone has any objections, please let me know. >> >> ------------------ >> >> From: Vikas Gupta >> >> [ Upstream commit c58387ab1614f6d7fb9e244f214b61e7631421fc ] >> >> Fix bug in the error code path when bnxt_request_irq() returns failure. >> bnxt_disable_napi() should not be called in this error path because >> NAPI has not been enabled yet. > [...] >> --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c >> +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c >> @@ -4591,7 +4591,7 @@ static int __bnxt_open_nic(struct bnxt * >> rc = bnxt_request_irq(bp); >> if (rc) { >> netdev_err(bp->dev, "bnxt_request_irq err: %x\n", rc); >> - goto open_err; >> + goto open_err_irq; >> } >> } >> >> @@ -4629,6 +4629,8 @@ static int __bnxt_open_nic(struct bnxt * >> >> open_err: >> bnxt_disable_napi(bp); >> + >> +open_err_irq: >> bnxt_del_napi(bp); > > Shouldn't this added statement be conditional on irq_re_init? > Unconditional call is more correct, because when open fails, we clean up everything, including the NAPI that was added just now or during a previous call. In other words, the NAPI struct is always valid here whether irq_re_init is true or not. And we always delete it if open fails. Thanks.