From patchwork Fri Aug 7 15:03:52 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1342312 X-Patchwork-Delegate: marek.vasut@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=o+9wPWfl; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4BNTDr5mmnz9sTN for ; Sat, 8 Aug 2020 01:05:16 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 57B3882222; Fri, 7 Aug 2020 17:04:37 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="o+9wPWfl"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id C6EA9821EA; Fri, 7 Aug 2020 17:04:30 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-qk1-x741.google.com (mail-qk1-x741.google.com [IPv6:2607:f8b0:4864:20::741]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 16A0C821D0 for ; Fri, 7 Aug 2020 17:04:27 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=seanga2@gmail.com Received: by mail-qk1-x741.google.com with SMTP id m7so1946421qki.12 for ; Fri, 07 Aug 2020 08:04:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Y4EFTetyxP9P79QqOsXytqYCG9cpFEOWEah6qYk4Rns=; b=o+9wPWflBhkK1BKKyFcJncHsI/DJwAt6U0Dq8MpDZ49vBUQhZb6zFiIDrkhjs2wGyz tke6hWC3VSyh8bXsE9dOZ0OCP1bkxmmFRqXhWmtoGm0ehrqlkiKQMVlY+O1cgdQJXVrb nxq6rGp7tLbnsZzA17orkWIePeHsuE9lF3t+Fjmh9sor5ubxCYAGKQNwD4SnynnQyH7a K8xw9hVBD+HUFGFb1qXD/T5dYFtM4NEbnKMhMRYMg/DrpaE1s3yfDromA+UC6da55aoJ 2fWXLAF5ziXIyOJxFSz2lgoMrlqF8M5Zhd1nIGq+xRC4dSNdTuTl43UCVa9CvFTtL1f/ oqbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Y4EFTetyxP9P79QqOsXytqYCG9cpFEOWEah6qYk4Rns=; b=j1K1/Rh1jqKHE6Ezdyxi2J1bdTGcmMEAhCIizUfpdY4Xfbe9JMRUdJd7IWmTINZN6m g8cEEazaAK0EU8gmUF6XpOjt1/5OZAJENYKz0ctBYOkrL0y9JHQK0ItqAwHFAqzYdYzC xaDXbZHg8bKl9KDGfnZZ4Syp0lxh3W5nQefU1hGgtqpYwQkz+vRkj/QwL2mrD7OGccBp xZUGZAl0ViGSV8/Y9zNo71OHJaxQ81ZJCw2IpTf/qfGQJfgLfLazBxjKBTc1K5uVjJHa 9jWKyTs1kBPuZoCy3xwB2IhQgCXw8CI3WuKCcFJWXzMf2Ss2k9gMVP3qjx7Ccb38Kn/o b7kA== X-Gm-Message-State: AOAM531JR7Npf8nDQ50ZDwLFEgEZOW9opFdnck3rcPqlW8beRMao0uBO ecu0NmHyR1sztotDjSI8HG3shNJRqr5MxQ== X-Google-Smtp-Source: ABdhPJzC/r6jh2incLkOdwlNFxcfRPe+w3O67OqLneN8lV5S7UxaPP2Fcnilc/i8HkjmelxsicVSlQ== X-Received: by 2002:a37:556:: with SMTP id 83mr14112642qkf.208.1596812665706; Fri, 07 Aug 2020 08:04:25 -0700 (PDT) Received: from godwin.fios-router.home (pool-108-51-35-162.washdc.fios.verizon.net. [108.51.35.162]) by smtp.gmail.com with ESMTPSA id d20sm6681550qkl.36.2020.08.07.08.04.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Aug 2020 08:04:25 -0700 (PDT) From: Sean Anderson To: u-boot@lists.denx.de Cc: Heinrich Schuchardt , Marek Vasut , Simon Glass , Jagan Teki , Bin Meng , Sean Anderson Subject: [PATCH v2 5/7] wdt: dw: Free the clock on error Date: Fri, 7 Aug 2020 11:03:52 -0400 Message-Id: <20200807150355.287181-5-seanga2@gmail.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200807150355.287181-1-seanga2@gmail.com> References: <20200807150355.287181-1-seanga2@gmail.com> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de X-Virus-Status: Clean The clock subsystem requires that clk_free be called on clocks obtained via clk_get_*. Signed-off-by: Sean Anderson --- (no changes since v1) drivers/watchdog/designware_wdt.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/drivers/watchdog/designware_wdt.c b/drivers/watchdog/designware_wdt.c index e6f5437056..189d555f29 100644 --- a/drivers/watchdog/designware_wdt.c +++ b/drivers/watchdog/designware_wdt.c @@ -131,11 +131,13 @@ static int designware_wdt_probe(struct udevice *dev) ret = clk_enable(&clk); if (ret) - return ret; + goto err; priv->clk_khz = clk_get_rate(&clk) / 1000; - if (!priv->clk_khz) - return -EINVAL; + if (!priv->clk_khz) { + ret = -EINVAL; + goto err; + } #else priv->clk_khz = CONFIG_DW_WDT_CLOCK_KHZ; #endif @@ -145,15 +147,20 @@ static int designware_wdt_probe(struct udevice *dev) ret = reset_get_bulk(dev, &resets); if (ret) - return ret; + goto err; ret = reset_deassert_bulk(&resets); if (ret) - return ret; + goto err; } /* reset to disable the watchdog */ return designware_wdt_stop(dev); + +err: + if (CONFIG_IS_ENABLED(CLK)) + clk_free(&clk); + return ret; } static const struct wdt_ops designware_wdt_ops = {