Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp8116496imu; Tue, 4 Dec 2018 03:17:02 -0800 (PST) X-Google-Smtp-Source: AFSGD/V+bpgRsztSSgA+ZEDNosM7Qg5Ij0equ7J4tcDHQp++Fto+3H5BnpmFTBYfzeqlcRo1+QlD X-Received: by 2002:aa7:8758:: with SMTP id g24mr19241020pfo.250.1543922222866; Tue, 04 Dec 2018 03:17:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543922222; cv=none; d=google.com; s=arc-20160816; b=BzgyFoiruMKv5I23PY2XRg47mBJsJ54J2mcr3U2hY+m3tpQcaYId882Hl6SHMHpe8r 82+iC1VDB8pdjRIJU5YdYaINdwpHYEL9hN5KFLGuaYVdxLG7D9mcRLZOj6WWMKe/gooJ 5J3e3W/A0pgUZHinQyYF6pQr1Pd4OzcclxuCyxXTVV3/7tBTYpYkbcp275Bv2/qiBgAz dwqIHc1foPRx032DfymU6UA32ZUzfLcjl7O7NuXp7QDqu/cFbKAuRKnpScEwodCPlZSv tjt4qbMhNvVTAj0DI2j2oc+D9tPenE8AHnEXFOgLBiA3/IcZeCSp5JaBsp0t2wFLwrpm qS5g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=ZkZmsfvoM187BR5vRZIXQaQNA8ThxqlaUXBiiuAkjyQ=; b=MswAWxe+e7dRZbeNBS83EPmtA7qL+/ppfUAn9WkPcdBzWl5ErK2EP5iya6zgo4q/Ck XhW6raIr5wL/x6MyPg9cTfuXqqMro3a4FA2beXXSJA7glhbJ3tLWWYpRhl8WtoAsPCp2 mukH70EtIve9eckkKxCgrSkIqiA1+2mYrPicO3J1Q4I3YSNLkZvajzWycV5jTTBfjNUT qv7gvFH+RKQLcZXNKBAYcS++tvElkDNbArEmDv1wL56xR36Q+UxVH627NzG56WRxNpq1 qi6FLGJOjExyWXbdxNG8wTL3jutP6UewO2CGqnvcWxBRDUI94DgHlqqctzTwuIsJ1rE2 BP1g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=NBMZtyYD; 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 c21si16555730plo.165.2018.12.04.03.16.47; Tue, 04 Dec 2018 03:17:02 -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; dkim=pass header.i=@kernel.org header.s=default header.b=NBMZtyYD; 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 S1728118AbeLDLPF (ORCPT + 99 others); Tue, 4 Dec 2018 06:15:05 -0500 Received: from mail.kernel.org ([198.145.29.99]:55266 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727948AbeLDLGl (ORCPT ); Tue, 4 Dec 2018 06:06:41 -0500 Received: from localhost (5356596B.cm-6-7b.dynamic.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 0539D214DB; Tue, 4 Dec 2018 11:06:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1543921600; bh=BhoyJdO7TekS9nzjhJDitloYspbXzAeRvpapVNWGoQs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NBMZtyYD0Kj90ovMxjCyasPpSDvJ+7fNXN4DArilN/+h6GDUF2sPHXYQxEJp3BFYi X0QQcINN5myA+of1yCoOhFSO4xjtXX8kpFilAg9j00cjVkymrI9ogN/n6L0XBJCPXu mqYUq2dEwDFnn8+riRu67nztigVUpXwdHcmkzwI8= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Mario Forner , Alexandre Belloni , Ludovic Desroches , Richard Genoud , Vinod Koul Subject: [PATCH 4.14 133/146] dmaengine: at_hdmac: fix memory leak in at_dma_xlate() Date: Tue, 4 Dec 2018 11:50:19 +0100 Message-Id: <20181204103732.177017889@linuxfoundation.org> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20181204103726.750894136@linuxfoundation.org> References: <20181204103726.750894136@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Richard Genoud commit 98f5f932254b88ce828bc8e4d1642d14e5854caa upstream. The leak was found when opening/closing a serial port a great number of time, increasing kmalloc-32 in slabinfo. Each time the port was opened, dma_request_slave_channel() was called. Then, in at_dma_xlate(), atslave was allocated with devm_kzalloc() and never freed. (Well, it was free at module unload, but that's not what we want). So, here, kzalloc is more suited for the job since it has to be freed in atc_free_chan_resources(). Cc: stable@vger.kernel.org Fixes: bbe89c8e3d59 ("at_hdmac: move to generic DMA binding") Reported-by: Mario Forner Suggested-by: Alexandre Belloni Acked-by: Alexandre Belloni Acked-by: Ludovic Desroches Signed-off-by: Richard Genoud Signed-off-by: Vinod Koul Signed-off-by: Greg Kroah-Hartman --- drivers/dma/at_hdmac.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) --- a/drivers/dma/at_hdmac.c +++ b/drivers/dma/at_hdmac.c @@ -1641,6 +1641,12 @@ static void atc_free_chan_resources(stru atchan->descs_allocated = 0; atchan->status = 0; + /* + * Free atslave allocated in at_dma_xlate() + */ + kfree(chan->private); + chan->private = NULL; + dev_vdbg(chan2dev(chan), "free_chan_resources: done\n"); } @@ -1675,7 +1681,7 @@ static struct dma_chan *at_dma_xlate(str dma_cap_zero(mask); dma_cap_set(DMA_SLAVE, mask); - atslave = devm_kzalloc(&dmac_pdev->dev, sizeof(*atslave), GFP_KERNEL); + atslave = kzalloc(sizeof(*atslave), GFP_KERNEL); if (!atslave) return NULL;