Received: by 2002:ac0:a581:0:0:0:0:0 with SMTP id m1-v6csp962805imm; Tue, 3 Jul 2018 03:09:11 -0700 (PDT) X-Google-Smtp-Source: AAOMgpfdgQId72Ssm5q4jPNG6+vFwsW9pGN0HiZRbsi7O0LrYDSIgDEPudD48oaQ+G5FrJ488nMT X-Received: by 2002:a62:c918:: with SMTP id k24-v6mr28985982pfg.160.1530612551704; Tue, 03 Jul 2018 03:09:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1530612551; cv=none; d=google.com; s=arc-20160816; b=ayPaMb6ta/NhStq9lGLdTgdiO1XlxxWAjwxHvtF4bI5ev6Cp+/sEGohzySgd9go6P2 F8QXJ2g9NEbcfSSnqLI36KWGUyFSDD+zwFZ+a6dR7UqsxiSUh9FVFO52TXCAE63kkdhP PsM4S5b4m4/YTcv0qIV3KDu05PXTE5Ue6FFllSRoMrDQVPK66skMBm875HWmhXy644TA ZpZBxUA2PxWaylsJP5puszElAsxpbnBSHHicLrS+TnB6h/F6wg0d/hChjFgl4k3GfpVm iyOFlPraMlclo1trXqFgyjX6fSQljL8LO3nySDX6SiuaUOKrQPE7N3rd3EwpDCA2glm3 RQEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=JRbcH2OYu2NNHS+lYmbpnKuyCQmmqjsopCKWTT4fY6w=; b=q5GpE1eOOsgdGpbvdgfksZarzWf88axnJMXInc99LcKbFiYiBO4BmZpg1CeAX80ORQ 2ofjrD/or1iWRsORca1/IrpbmNHjFeVUp3zE47fZ2iKRlOfbPVZXgqslyQUvcykwB8I3 rgvORf6q5mVytxSxup5+RAeZ4FA4q5uMNLST20idrq/cT3EuGfWOfI+OjS34y39rTZAl /VOj13JX3lVhCjAKgJR55qrqjBrRuLieJj1KU6nYE15KF0aWtzJuNbEvKc0hWCfgiso7 ItgnMD73621IYSlFGc7o4TYh7gjdgmXitpEEy+v3AIiSr0RUb3JQZv5qryxyzQRxlDVE 1j2g== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=lYO8ujmy; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m13-v6si785103pls.70.2018.07.03.03.08.56; Tue, 03 Jul 2018 03:09:11 -0700 (PDT) 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=fail header.i=@gmail.com header.s=20161025 header.b=lYO8ujmy; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933969AbeGCKGb (ORCPT + 99 others); Tue, 3 Jul 2018 06:06:31 -0400 Received: from mail-lf0-f65.google.com ([209.85.215.65]:36681 "EHLO mail-lf0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933995AbeGCKGP (ORCPT ); Tue, 3 Jul 2018 06:06:15 -0400 Received: by mail-lf0-f65.google.com with SMTP id n24-v6so1133075lfh.3; Tue, 03 Jul 2018 03:06:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id; bh=JRbcH2OYu2NNHS+lYmbpnKuyCQmmqjsopCKWTT4fY6w=; b=lYO8ujmynFAbIumTjeVBtrzuqUhTmQD1pgwE4CziKiFnABkgZ6pUxd8nrk9Brr6RLG eVqoH9PEkETjx+rnlcUpVJfgGe1wn6g24LCNbD/gLSx0AaYHZsEbGWCsXLMXkD5jNwlv l4ZTZj6JFTqZ7Si3YE9MYdLv7fwO+BTWHDRbyRQhyfVHVv1SfW2aVkdmEv4w7KYA542a DfAgM+d+hngv3EoBHQhDkY4RYSgXWd7sD/QtB95uy28ikfKCdSVvxfrCsdbbihK1zsjo EbzbzHj8OWrxo6FUFLvrAnzf30NeJ7CDzg/4PGXw7ss1BSZfQuXTDUyhRH7znUS518pV aSEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id; bh=JRbcH2OYu2NNHS+lYmbpnKuyCQmmqjsopCKWTT4fY6w=; b=KJ7AA3ORGiKs2ZvXBO2zrMNHO9LPmovMbgHOLHdMWiQoun15gi7mx6WFc/Sjy+W7H8 mCF4/zBmYHgeUJiPoLZRRMpf6diW+A3n6vtHcaICHHMRh16HzKqqftdJE8ZwSuRjp96T NHD7VgsdCJsx8bjuveEVi0OACwqtoUDy0jTGXYtC2wjRe+jW3RMMWoK6ooCDuOVkUgBs Svf8rvS4/MjgPoKn4bOOhOXAsX8cCl7l0+H4PeqNNuPt5KIFACnIWG5juRb+joOBSIpA yNl397QpvhsoJ69IIIBDXBifKp9LP0RdJUFpiOAp7EcQhnMef+/cZjZCFpzTq1w+hGqB /Obw== X-Gm-Message-State: APt69E3keyZQhz2ZPGDsAxnCDMlj5sSLVI2WK7cHBxzdlZWFfkgvMXhp A2z/vaqILVV83KbvsjLF8IM= X-Received: by 2002:a19:6902:: with SMTP id e2-v6mr6343066lfc.70.1530612373528; Tue, 03 Jul 2018 03:06:13 -0700 (PDT) Received: from xi.terra (c-8bb2e655.07-184-6d6c6d4.bbcust.telenor.se. [85.230.178.139]) by smtp.gmail.com with ESMTPSA id m72-v6sm178818lfm.49.2018.07.03.03.06.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 03 Jul 2018 03:06:12 -0700 (PDT) Received: from johan by xi.terra with local (Exim 4.91) (envelope-from ) id 1faICD-0007s6-EX; Tue, 03 Jul 2018 12:06:05 +0200 From: Johan Hovold To: Greg Kroah-Hartman Cc: Arnd Bergmann , Alexandre Belloni , Vladimir Zapolskiy , linux-kernel@vger.kernel.org, Johan Hovold , stable Subject: [PATCH 1/2] misc: sram: fix resource leaks in probe error path Date: Tue, 3 Jul 2018 12:05:47 +0200 Message-Id: <20180703100548.30214-1-johan@kernel.org> X-Mailer: git-send-email 2.18.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Make sure to disable clocks and deregister any exported partitions before returning on late probe errors. Note that since commit ee895ccdf776 ("misc: sram: fix enabled clock leak on error path"), partitions are deliberately exported before enabling the clock so we stick to that logic here. A follow up patch will address this. Fixes: 2ae2e28852f2 ("misc: sram: add Atmel securam support") Cc: stable # 4.9 Cc: Alexandre Belloni Signed-off-by: Johan Hovold --- drivers/misc/sram.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/misc/sram.c b/drivers/misc/sram.c index c5dc6095686a..679647713e36 100644 --- a/drivers/misc/sram.c +++ b/drivers/misc/sram.c @@ -407,13 +407,20 @@ static int sram_probe(struct platform_device *pdev) if (init_func) { ret = init_func(); if (ret) - return ret; + goto err_disable_clk; } dev_dbg(sram->dev, "SRAM pool: %zu KiB @ 0x%p\n", gen_pool_size(sram->pool) / 1024, sram->virt_base); return 0; + +err_disable_clk: + if (sram->clk) + clk_disable_unprepare(sram->clk); + sram_free_partitions(sram); + + return ret; } static int sram_remove(struct platform_device *pdev) -- 2.18.0