Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp3353407pxf; Mon, 5 Apr 2021 09:48:09 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwBGJ0G9zixAw4Vc+mI74KaQfRkTl4uFxzz72eBfE76Y0WuHRQcJGOhwgwUpaVYLNTzl1JI X-Received: by 2002:a17:906:4cd6:: with SMTP id q22mr29316503ejt.469.1617641289193; Mon, 05 Apr 2021 09:48:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617641289; cv=none; d=google.com; s=arc-20160816; b=Z0MkRAITRhXlG2lj+JXtod/+TjHjRGiWR74idYKZPkLutJJk4BdaArv27z2GUayQ+0 QjRq4GAb6B/ciOnVTMUU0/tRmiI58uPSBALGvGTHsf+/e5knnPuy040H3YcOcOuFwxt3 O1/6BbI6TXPXa1/P3VL6FwbLNmwE4I1kxm9Z6fAX1nsM3sQp+s5I9ATXKimKOjoeoMWU Q1E3idOCpQ6ZjubaNvEWVusy9/g5ByVkHKsqE7WKZdCfy87w11Bu27u9HvUBsHyXH34z IezvQee3aD9J0NCuwnrzVQlczFlAEbos18iasFFoUwcBXnPHbdN2qnT/EBl63CN2l8cd uVQw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=mHKTdk1oee6V+NSvpX20sRhGL84tRBizdsvWQlyuPPM=; b=yxaKS4b1urPXyyJTF3vu0Zbb7jQRW/OKw7l8LFf+1wUk5b2EUbRQo40XG7tfpgFqiS PE6SKpGt/eHXmpyTHWLiq/89YJ9qUxqhZ4g2jK03X0noqIlhj8O2RUC+EVKQrg38T8Q+ 2XJzhYw3h8jM9WY+OHbnXjvrSIXdovOsvA3nhXrIqRNhP7xHJcyFcZamUCHG41Ix091n y2rV83CnjF3zfgqLV5iEY4DsiPXUjisAKmLjaV7daZC1r3jBfkjtwd525QIex8Jqc3SL EUQZ2JujCczki1iM3ZIo2TbQAWBpG/rDDzoCDG+TstuhwlggCqPwt/fIvZwXSgj/qaIa xrww== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=VB+hCJdj; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id c17si13021876ede.535.2021.04.05.09.47.45; Mon, 05 Apr 2021 09:48:09 -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; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=VB+hCJdj; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239772AbhDEJRq (ORCPT + 99 others); Mon, 5 Apr 2021 05:17:46 -0400 Received: from mail.kernel.org ([198.145.29.99]:33886 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239641AbhDEJOG (ORCPT ); Mon, 5 Apr 2021 05:14:06 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 9C10860FE4; Mon, 5 Apr 2021 09:13:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1617614040; bh=+xAhD1Tdz5cO8Rdha1TSMYGIgyRReH40iWt5+HZgRJQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VB+hCJdjNDvuMwojSGAmxTtW+4BMLJFyD3pLmNT8IGn9D+lgVDkQThq90FKpynlM6 gH0l8KTsPRffZiLNXO9cLrcmhJgk42+81WWe5rGPw+nKoJz1Sx3llZNDSZosA9RSPF QefRfEwDOwaHZbtqzlB9lz43Kl0FulaouJ+pPOBE= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Nathan Rossi , Igor Russkikh , "David S. Miller" , Sasha Levin Subject: [PATCH 5.11 060/152] net: ethernet: aquantia: Handle error cleanup of start on open Date: Mon, 5 Apr 2021 10:53:29 +0200 Message-Id: <20210405085036.231086166@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210405085034.233917714@linuxfoundation.org> References: <20210405085034.233917714@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Nathan Rossi [ Upstream commit 8a28af7a3e85ddf358f8c41e401a33002f7a9587 ] The aq_nic_start function can fail in a variety of cases which leaves the device in broken state. An example case where the start function fails is the request_threaded_irq which can be interrupted, resulting in a EINTR result. This can be manually triggered by bringing the link up (e.g. ip link set up) and triggering a SIGINT on the initiating process (e.g. Ctrl+C). This would put the device into a half configured state. Subsequently bringing the link up again would cause the napi_enable to BUG. In order to correctly clean up the failed attempt to start a device call aq_nic_stop. Signed-off-by: Nathan Rossi Reviewed-by: Igor Russkikh Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- drivers/net/ethernet/aquantia/atlantic/aq_main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_main.c b/drivers/net/ethernet/aquantia/atlantic/aq_main.c index 8f70a3909929..4af0cd9530de 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_main.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_main.c @@ -71,8 +71,10 @@ static int aq_ndev_open(struct net_device *ndev) goto err_exit; err = aq_nic_start(aq_nic); - if (err < 0) + if (err < 0) { + aq_nic_stop(aq_nic); goto err_exit; + } err_exit: if (err < 0) -- 2.30.1