Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp4028603pxb; Mon, 8 Feb 2021 06:22:23 -0800 (PST) X-Google-Smtp-Source: ABdhPJxSDEYtxs/bDkzRaZMEhKu4OSgscrmmlytVPEjgngZ/F8xGsurjGDEswg43dDZ1WeLht23c X-Received: by 2002:a17:906:f0c4:: with SMTP id dk4mr16788352ejb.6.1612794143568; Mon, 08 Feb 2021 06:22:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1612794143; cv=none; d=google.com; s=arc-20160816; b=m/Hojn0vx6c+Dt+S5uj64jmMDdrT5Hnl0sfSVKRRbVnd88Ljau70RWJj2te8oB61BN OhCblxGNBt/awmn8GLgNkW6wJObWX2wYxbT2vtzBJMzUMF/eNtcKFS3fNnEDabSyEBIt 8waRAQCqSLI1iEif65pMQx6z/4/thNKooz4tLSIiEj8HhF0d29cKJ40lO+RAX0sDJpSz 0ZlVWcqe9+RLNWB5l07nh2xzQorF8cCKYwIGwl0U8SVBOGtMXpZ4KYp1MTYIGor9mgyk YCKJz5dGwtVLhel4gwAq+bD9wyog12S7XRVa0IojVeGg14QnHDmTXJX6OEp2BZ1C3mwA T5vw== 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=4Fb+d4h0eafnn4a8JfXe6GyO0zPnLf20wpBZqS1repE=; b=SKWFKY8ufSGdCxnLMZZUnyz6/jx+jlwCUMmX2IMJcal/RtbxDQ3QV/ucrkVkjHP2x6 pJhHwKSufh2QKvQiKZTyROqzGUsLaQiOHU7qMwesJBsMD3IhDzMgdNaGZqjfI2HxygDK 4M2AV8UHUTuwl/idca66cXEMojQF1mPAJrUF0z4l6zEJdyJCzKbfjzzjMjxnPOI+SAEc krTq+2Pb4gcQgmVa7m5UptdNnAX5CCZqxsDFNuwCxPInYLOe7jQmCntKBJHW4S+6L3tr 6Gh3OVnv4GwcCwhQdbcpkSxuJE5xtvEXqbXqPNq9tO/k1+/x3GPVBCgEuMBfh48SIbPM WxTA== 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 bx1si12058162edb.603.2021.02.08.06.21.58; Mon, 08 Feb 2021 06:22:23 -0800 (PST) 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 S232624AbhBHOVQ (ORCPT + 99 others); Mon, 8 Feb 2021 09:21:16 -0500 Received: from mail.baikalelectronics.com ([87.245.175.226]:57214 "EHLO mail.baikalelectronics.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232691AbhBHOE2 (ORCPT ); Mon, 8 Feb 2021 09:04:28 -0500 From: Serge Semin To: Giuseppe Cavallaro , Alexandre Torgue , Jose Abreu , "David S. Miller" , Jakub Kicinski , Joao Pinto , Jose Abreu , Maxime Coquelin CC: Serge Semin , Serge Semin , Alexey Malahov , Pavel Parkhomenko , Vyacheslav Mitrofanov , Russell King , Andrew Lunn , Heiner Kallweit , , , , Subject: [PATCH 02/20] net: stmmac: Free Rx descs on Tx allocation failure Date: Mon, 8 Feb 2021 17:03:23 +0300 Message-ID: <20210208140341.9271-3-Sergey.Semin@baikalelectronics.ru> In-Reply-To: <20210208140341.9271-1-Sergey.Semin@baikalelectronics.ru> References: <20210208140341.9271-1-Sergey.Semin@baikalelectronics.ru> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-ClientProxiedBy: MAIL.baikal.int (192.168.51.25) To mail (192.168.51.25) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Indeed in accordance with the alloc_dma_desc_resources() method logic the Rx descriptors will be left allocated if Tx descriptors allocation fails. Fix it by calling the free_dma_rx_desc_resources() in case if the alloc_dma_tx_desc_resources() method returns non-zero value. While at it refactor the method a bit. Just move the Rx descriptors allocation method invocation out of the local variables declaration block and discard a pointless comment from there. Signed-off-by: Serge Semin --- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 03acf14d76de..5ee840525824 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -1791,13 +1791,15 @@ static int alloc_dma_tx_desc_resources(struct stmmac_priv *priv) */ static int alloc_dma_desc_resources(struct stmmac_priv *priv) { - /* RX Allocation */ - int ret = alloc_dma_rx_desc_resources(priv); + int ret; + ret = alloc_dma_rx_desc_resources(priv); if (ret) return ret; ret = alloc_dma_tx_desc_resources(priv); + if (ret) + free_dma_rx_desc_resources(priv); return ret; } -- 2.29.2