Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp3325683pxf; Mon, 5 Apr 2021 09:05:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxUBS1jZzh3soMp7oV9zLf0tjp+Cd9DAP6a2geSCQ1bIRi/MCpZhkxy99vXIAKkBZD06Y2b X-Received: by 2002:a17:906:49c1:: with SMTP id w1mr15778811ejv.178.1617638722499; Mon, 05 Apr 2021 09:05:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617638722; cv=none; d=google.com; s=arc-20160816; b=mykg0fm5oynsiFYdgUoJ5A00dhqqMzDvhEbNjO1CNo2EUWdtzT9X3eC5/aCV3IsNE8 d5bu/da63zu/dr9/DGuleAwbKhav4xG4UP+Rla05StAIWUIsOr3NpNMPdWR07kU4jczJ ijw0mySNDaFVzhZeVIucvJ5MYyfInVulGowjwmAObZ+8+VUJMha1fZq6HXQb8fz7p5+L foYLA40MDamIgMB4YF7ELvUHITdo6ZGlu68mg5vsUh8yNe3uX1Mt+Prjje9GiLaWu8vZ V9lIGXARMjygNGVgiGXwH1mZzs7TuNMEuhxv8YUfHgLgzloQ9h/dDMySpSByUMH8wzo/ 1WRA== 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=XqpL+4m6Xayjnj61LO9vSkUDzl5IIJbMJ/mCtoT5zgSJlt9cEIxoCIgzAg7gbZZsyi FjUbXl2mqv3wjCAyQ/jFwefkFEKEWRBYlurErdNJG86mBt+6QiXc+7pYemELUo5ZW976 OnhbH81bI94WBwPf5ul8c7K1riwpJk2q3/XufiHPOybDFEKD9f4gpL/MvPHuApZZo0kU y+/NRjrU7QnZal74a1plTjfwkZB0aZ8TFEJPS/ArlEuYaGihFOXoViNsyviX1fuYzb8C KLbUhuk0WS0WhKSNrx1gWB/uHV6Qf5KB0kdv7KSFHdKleSHjL/j+Oct2nd/HHG4iavCb fBQA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=uA6jvXNe; 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 q10si4666587ejb.620.2021.04.05.09.04.58; Mon, 05 Apr 2021 09:05:22 -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=uA6jvXNe; 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 S238812AbhDEJKO (ORCPT + 99 others); Mon, 5 Apr 2021 05:10:14 -0400 Received: from mail.kernel.org ([198.145.29.99]:52566 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238519AbhDEJHz (ORCPT ); Mon, 5 Apr 2021 05:07:55 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id EECA76139D; Mon, 5 Apr 2021 09:07:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1617613666; bh=+xAhD1Tdz5cO8Rdha1TSMYGIgyRReH40iWt5+HZgRJQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uA6jvXNedZbkFX5KJYsqLFLonabRWwKA9rdyDdEOkFYe2LZ7kkc0au/8MUCHem2eN cAqhOLbyt8Rmdp0AdwNDjDZNZo1/1OAyM9VuiO6xEEb3XkWON8ZY2l3fYFVuL87puu yh8FtiwfVtI8uCcrzc+/iA8h+w4Xol9QWcdstL+s= 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.10 048/126] net: ethernet: aquantia: Handle error cleanup of start on open Date: Mon, 5 Apr 2021 10:53:30 +0200 Message-Id: <20210405085032.625044515@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210405085031.040238881@linuxfoundation.org> References: <20210405085031.040238881@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