Received: by 10.223.164.202 with SMTP id h10csp3036278wrb; Tue, 28 Nov 2017 05:21:35 -0800 (PST) X-Google-Smtp-Source: AGs4zMYX1xGnXFVcWLvYZAbwG0LN3tuZfOTq/CcobFRyyIwAd5HMODbww0ghFT4Ar4dcVkS9aImQ X-Received: by 10.84.216.81 with SMTP id f17mr42117412plj.330.1511875295644; Tue, 28 Nov 2017 05:21:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1511875295; cv=none; d=google.com; s=arc-20160816; b=XunjK63S3muqmdzXYMR1MVNSxRf6nPSR8yu72uD1T3biZy9NLAWXgTigKeRj+p06lG hwSHPUXqtZJ7qbgL/BUxejE6bebpcXsk2U6L60WWn6wPPjLi0IU0ulHh5RMDUkILxN+n fShNtAt4HIPJsBJltZV8rJ4S7l1T3vKkfqdUuw0EV7aAPl/0s18ozeyh0MCF3IteXbY9 GQxHyQcpB79FwZM9isIoIOJJ/gv9xyffD6WK80fZLAjj439lobZIn2VjIGaehZ1w8gEm /9bkOqxrZyaKrU22eCUBS9VPnD/k5tbVijgsPn8cAcwhcUhPPGOgHWhp7gbQ+6kiWRR/ P9pg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=OyucvZGtJ/LV3DxvD0mkOZelvt03SVZPzHrNPfsgljE=; b=WKcf4BpsqXReG+klFrZtOu3I65o/dQAJsBZatn6L5zgfkoog72hhhmTdWFo8Iyw+7Y SIxtpaQASicAS1QDi5vKR3g6MN+8ZeTXmPgDGsMJkbreqLQ0FhgxWWRcCmvd75Pu/cpu +PpW4Jfgp7fJQIRmSbRvTjk1rzP31ozni0BF1udb+Y/USXWe3/mEN0tmneNEYZdcf2HV nvbfDb7PL918XqIcH34Ss5APr5eXQLwWJ5C7z3G25A16bhsLHvHb5XlTtQMaRZ7vjp/B MEWA5uiP8Gu6NPhjSlQbTgvr6evtab7L/S2S9QwdjAc/tdcqv9NDBOtsCg2/zMlvmGgM t7Fw== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f9si25029045plo.553.2017.11.28.05.21.24; Tue, 28 Nov 2017 05:21:35 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753054AbdK1NUe (ORCPT + 76 others); Tue, 28 Nov 2017 08:20:34 -0500 Received: from mail.free-electrons.com ([62.4.15.54]:60115 "EHLO mail.free-electrons.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752883AbdK1NUX (ORCPT ); Tue, 28 Nov 2017 08:20:23 -0500 Received: by mail.free-electrons.com (Postfix, from userid 110) id A28E820382; Tue, 28 Nov 2017 14:20:21 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mail.free-electrons.com X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,SHORTCIRCUIT shortcircuit=ham autolearn=disabled version=3.4.0 Received: from localhost (LStLambert-657-1-97-87.w90-63.abo.wanadoo.fr [90.63.216.87]) by mail.free-electrons.com (Postfix) with ESMTPSA id EDFDD20740; Tue, 28 Nov 2017 14:20:02 +0100 (CET) From: Antoine Tenart To: davem@davemloft.net Cc: Antoine Tenart , gregory.clement@free-electrons.com, thomas.petazzoni@free-electrons.com, miquel.raynal@free-electrons.com, nadavh@marvell.com, mw@semihalf.com, stefanc@marvell.com, ymarkman@marvell.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net 1/4] net: mvpp2: fix the txq_init error path Date: Tue, 28 Nov 2017 14:19:48 +0100 Message-Id: <20171128131951.25383-2-antoine.tenart@free-electrons.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20171128131951.25383-1-antoine.tenart@free-electrons.com> References: <20171128131951.25383-1-antoine.tenart@free-electrons.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When an allocation in the txq_init path fails, the allocated buffers end-up being freed twice: in the txq_init error path, and in txq_deinit. This lead to issues as txq_deinit would work on already freed memory regions: kernel BUG at mm/slub.c:3915! Internal error: Oops - BUG: 0 [#1] PREEMPT SMP This patch fixes this by removing the txq_init own error path, as the txq_deinit function is always called on errors. This was introduced by TSO as way more buffers are allocated. Fixes: 186cd4d4e414 ("net: mvpp2: software tso support") Signed-off-by: Antoine Tenart --- drivers/net/ethernet/marvell/mvpp2.c | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/drivers/net/ethernet/marvell/mvpp2.c b/drivers/net/ethernet/marvell/mvpp2.c index 6c20e811f973..79f01cd80dd7 100644 --- a/drivers/net/ethernet/marvell/mvpp2.c +++ b/drivers/net/ethernet/marvell/mvpp2.c @@ -5805,7 +5805,7 @@ static int mvpp2_txq_init(struct mvpp2_port *port, sizeof(*txq_pcpu->buffs), GFP_KERNEL); if (!txq_pcpu->buffs) - goto cleanup; + return -ENOMEM; txq_pcpu->count = 0; txq_pcpu->reserved_num = 0; @@ -5821,26 +5821,10 @@ static int mvpp2_txq_init(struct mvpp2_port *port, &txq_pcpu->tso_headers_dma, GFP_KERNEL); if (!txq_pcpu->tso_headers) - goto cleanup; + return -ENOMEM; } return 0; -cleanup: - for_each_present_cpu(cpu) { - txq_pcpu = per_cpu_ptr(txq->pcpu, cpu); - kfree(txq_pcpu->buffs); - - dma_free_coherent(port->dev->dev.parent, - txq_pcpu->size * TSO_HEADER_SIZE, - txq_pcpu->tso_headers, - txq_pcpu->tso_headers_dma); - } - - dma_free_coherent(port->dev->dev.parent, - txq->size * MVPP2_DESC_ALIGNED_SIZE, - txq->descs, txq->descs_dma); - - return -ENOMEM; } /* Free allocated TXQ resources */ -- 2.14.3 From 1585869811224770423@xxx Mon Dec 04 16:01:48 +0000 2017 X-GM-THRID: 1585869730498010811 X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread