Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp353337pxv; Wed, 30 Jun 2021 23:00:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxRMcAtgnfkrlcSH0DdtKSvR8NY3zy1t9c9lX9c9Zi3UEH9JKOLmyg5pRKVYKab0DFc4J+3 X-Received: by 2002:aa7:dc42:: with SMTP id g2mr51036784edu.362.1625119227843; Wed, 30 Jun 2021 23:00:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625119227; cv=none; d=google.com; s=arc-20160816; b=wOuENoMXS/Yhhr/H1YgXfablKApkS2ZRw/4aIGGrGksmDRSb04VIrUy58GGv6oKYEs /ia9so4wE+Qy/5FgSbL03WnUY4XBChUjmVE+kgC+GwayxG7XiabVoRVTxoBi7Yki2CvL KzXGOG9kB2jGz5DtZWzMPJNyEukRCiLhs+b9nm178516mkV01aa7CHPOTnU6iwVIkUt9 xuAs8ecP1m4fZdzUs+5gzj2bkgCBKe/7tFMRgRdRLQNJHiEGbM1IlfwQV3fehdZxfixz Ze/vsLZM9y/Ey2x+0NNVYTrDB3w3s91oC3eSLR47FRkwkc0xZI6ubgs3hQYDMLcduOk5 kKaA== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=yl9SWY+YqZJ3hHnIBwyUFWGorBX0NITBRsp1ACYzNm4=; b=ZV8nZvvDS6SgguQ/v16dL5l3JCnCiKCEH6LIqENz/kTGgGQB2jAa3kXuikTdLTKM0k oJZDvboUHpLlsds/LPKZZUIWaDbuGXyY4qjzB0RovOICN8GYoE17XiS66SI1Bde54nCy K4TVwwzf93oCrjJ6b3yTlXGMTbNCYeKLIL/1+r9pQ0jfjjPIGoIssmRDKVzuuoZb1k06 Aut077Mt6kaDZ4CdLTpymvgSCodjhjtGI2leRSCmAIytV36TvC+ZQmWc1jtXR7K+MfLF iVlaZLtkH672iwGlfPlSYmJwdgxaR9BXb9zi7zCnRNxE5R3e/wNP9MvnpR7vhl0RQW0B 3sNA== 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w9si5988689edx.331.2021.06.30.23.00.02; Wed, 30 Jun 2021 23:00: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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234490AbhGAGBO (ORCPT + 99 others); Thu, 1 Jul 2021 02:01:14 -0400 Received: from smtp03.smtpout.orange.fr ([80.12.242.125]:55511 "EHLO smtp.smtpout.orange.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234444AbhGAGBN (ORCPT ); Thu, 1 Jul 2021 02:01:13 -0400 Received: from localhost.localdomain ([86.243.172.93]) by mwinf5d58 with ME id Phyh2500921Fzsu03hyhlr; Thu, 01 Jul 2021 07:58:42 +0200 X-ME-Helo: localhost.localdomain X-ME-Auth: Y2hyaXN0b3BoZS5qYWlsbGV0QHdhbmFkb28uZnI= X-ME-Date: Thu, 01 Jul 2021 07:58:42 +0200 X-ME-IP: 86.243.172.93 From: Christophe JAILLET To: csully@google.com, sagis@google.com, jonolson@google.com, davem@davemloft.net, kuba@kernel.org, awogbemila@google.com, willemb@google.com, yangchun@google.com, bcf@google.com, kuozhao@google.com Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org, Christophe JAILLET Subject: [PATCH 1/3] gve: Fix an error handling path in 'gve_probe()' Date: Thu, 1 Jul 2021 07:58:40 +0200 Message-Id: <25de65aff4df2f0f0a67dd81b34be59b018e34c9.1625118581.git.christophe.jaillet@wanadoo.fr> X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org If the 'register_netdev() call fails, we must release the resources allocated by the previous 'gve_init_priv()' call, as already done in the remove function. Add a new label and the missing 'gve_teardown_priv_resources()' in the error handling path. Fixes: 893ce44df565 ("gve: Add basic driver framework for Compute Engine Virtual NIC") Signed-off-by: Christophe JAILLET --- drivers/net/ethernet/google/gve/gve_main.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/google/gve/gve_main.c b/drivers/net/ethernet/google/gve/gve_main.c index 867e87af3432..32166ebc0f01 100644 --- a/drivers/net/ethernet/google/gve/gve_main.c +++ b/drivers/net/ethernet/google/gve/gve_main.c @@ -1565,7 +1565,7 @@ static int gve_probe(struct pci_dev *pdev, const struct pci_device_id *ent) err = register_netdev(dev); if (err) - goto abort_with_wq; + goto abort_with_vge_init; dev_info(&pdev->dev, "GVE version %s\n", gve_version_str); dev_info(&pdev->dev, "GVE queue format %d\n", (int)priv->queue_format); @@ -1573,6 +1573,9 @@ static int gve_probe(struct pci_dev *pdev, const struct pci_device_id *ent) queue_work(priv->gve_wq, &priv->service_task); return 0; +abort_with_vge_init: + gve_teardown_priv_resources(priv); + abort_with_wq: destroy_workqueue(priv->gve_wq); -- 2.30.2