From patchwork Tue Jun 20 11:57:00 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arvind Yadav X-Patchwork-Id: 9799303 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id BD05E600F6 for ; Tue, 20 Jun 2017 11:58:06 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AE0F928453 for ; Tue, 20 Jun 2017 11:58:06 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A161D28472; Tue, 20 Jun 2017 11:58:06 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FROM autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 34D6528453 for ; Tue, 20 Jun 2017 11:58:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To: References:List-Owner; bh=+ch1UHBD/4U/CBogLkJ+5jrL2k3HYEslsPi1QRHhlAU=; b=HHH w2OCCT0OaIAEcH2LB4FAF08i4TtJMOXZZdcJjoGw38HciP7rL+AtchDQOg3nHUAn8cI/3mE0vPkLn jai8GTpJvFPjhCk8Hg+SyxxLVgK3MAw1YdEHkvttoJMNM1+CgupI5g6SKgnPEgk3qVSqHWiOplLqZ ITp+Oc69caqtAqaSZ2YFViXVx2JZXLUqR6Culz1Pkz8t53RKlSAErE95BGmLqk3aXeZfy+1j8OjHV mJUsg8vVD58tTto0XVld+LR7W/oRGtAsyJJ2Jk/zJaS03g3aBQ2WsakHTJpZczF240Mn+BzsNympj SeckVgYPbuh6yr1Yttf/Trj4YRQP6xw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1dNHnJ-0008E9-BC; Tue, 20 Jun 2017 11:58:05 +0000 Received: from mail-pg0-x243.google.com ([2607:f8b0:400e:c05::243]) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1dNHnG-00089Y-FW for linux-arm-kernel@lists.infradead.org; Tue, 20 Jun 2017 11:58:04 +0000 Received: by mail-pg0-x243.google.com with SMTP id j186so20793256pge.1 for ; Tue, 20 Jun 2017 04:57:40 -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; bh=OVbt/rK74LcC84ABrV80AH82SNEtJzwBTWAF1FX2w/M=; b=RwqGju8+a4xCEKsHAhzEl+j6PyjsCoYA8/eIj6vZ9HZopdlIxchf4icv3fVdZZf28Z 7LNtEjEGotDmv9Q9P8iT6Enr99QnbZ2faipNy99L/6pR35rKVImSiRlMQeiLDchEOTX6 mfuluFj0cmywnR6CMKlxIoQH3qaS1XXz1Ff3Nae2+benmBoJc2l3rcABNt9QAid1YgSQ OskfSIbb4+16yjSV2uyZkX+qVvcwjbQYD/5yMlsQ38lvFACIslaMicrJSJSoaBt3vLpZ v+t48ZPrIumciyfCmpXlDVCLHOoS5nHxLzay+yCCo3rVaOTYQTcHRQgvlhvNcFJtbq/y d3hQ== 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; bh=OVbt/rK74LcC84ABrV80AH82SNEtJzwBTWAF1FX2w/M=; b=cT6qkAryQRSYiTh4zHkSkVnCDIWCKerkHhYx6pL8ztemoiD0dx250OwBA/XmeqyByA 4fa77vSny9cCAAiQZZ9EIDPf5gIm33gvLhhCBPKB1vPbkcQ3//+xSIdB1SRekhteuqI4 WIZNtjiFfkU3Acb5r/1uwIDuhXi+yA/h9W/ND74Q2eKY6gaWh5wcd8U7hhpMVclHFRmd lbK7KYe8WyrCiQd72tFoCMwOoWOKH9kDtnBbmznfz/LbPiBnmAn5AgiRxq7b71NUUOvy B32O4aoTT36k4A3GJv3jNoGVXjuQE7/O/6LcToZ0ZPTbrDozBUbJPUfa9p+WLRd9VyAX rLFw== X-Gm-Message-State: AKS2vOyRiNFw5ET8RBmvUNVGbVN1XXm38yKoNqJEL5DjoortD+3ul0Ow pl16+cxGh6WLVPyZ6GM= X-Received: by 10.98.208.1 with SMTP id p1mr29940569pfg.219.1497959860327; Tue, 20 Jun 2017 04:57:40 -0700 (PDT) Received: from symbol-HP-Z420-Workstation.zebra.lan ([223.31.70.102]) by smtp.googlemail.com with ESMTPSA id f72sm27170328pfe.4.2017.06.20.04.57.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 20 Jun 2017 04:57:39 -0700 (PDT) From: Arvind Yadav To: patrice.chotard@st.com, adrian.hunter@intel.com, ulf.hansson@linaro.org Subject: [PATCH] mmc: host: sdhci-st: Handle return value of clk_prepare_enable Date: Tue, 20 Jun 2017 17:27:00 +0530 Message-Id: X-Mailer: git-send-email 1.9.1 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20170620_045802_576607_91259A8B X-CRM114-Status: GOOD ( 10.39 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-mmc@vger.kernel.org, kernel@stlinux.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP clk_prepare_enable() can fail here and we must check its return value. Signed-off-by: Arvind Yadav --- drivers/mmc/host/sdhci-st.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/drivers/mmc/host/sdhci-st.c b/drivers/mmc/host/sdhci-st.c index 68c36c9f..198b4ca 100644 --- a/drivers/mmc/host/sdhci-st.c +++ b/drivers/mmc/host/sdhci-st.c @@ -394,8 +394,17 @@ static int sdhci_st_probe(struct platform_device *pdev) goto err_of; } - clk_prepare_enable(clk); - clk_prepare_enable(icnclk); + ret = clk_prepare_enable(clk); + if (ret) { + dev_err(&pdev->dev, "Failed to prepare clock\n"); + goto err_of; + } + + ret = clk_prepare_enable(icnclk); + if (ret) { + dev_err(&pdev->dev, "Failed to prepare icn clock\n"); + goto err_icnclk; + } /* Configure the FlashSS Top registers for setting eMMC TX/RX delay */ res = platform_get_resource_byname(pdev, IORESOURCE_MEM, @@ -429,6 +438,7 @@ static int sdhci_st_probe(struct platform_device *pdev) err_out: clk_disable_unprepare(icnclk); +err_icnclk: clk_disable_unprepare(clk); err_of: sdhci_pltfm_free(pdev); @@ -487,9 +497,17 @@ static int sdhci_st_resume(struct device *dev) struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); struct st_mmc_platform_data *pdata = sdhci_pltfm_priv(pltfm_host); struct device_node *np = dev->of_node; + int ret; + + ret = clk_prepare_enable(pltfm_host->clk); + if (ret) + return ret; - clk_prepare_enable(pltfm_host->clk); - clk_prepare_enable(pdata->icnclk); + ret = clk_prepare_enable(pdata->icnclk); + if (ret) { + clk_disable_unprepare(pltfm_host->clk); + return ret; + } if (pdata->rstc) reset_control_deassert(pdata->rstc);