Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751641AbdFFKyr (ORCPT ); Tue, 6 Jun 2017 06:54:47 -0400 Received: from mail-qt0-f171.google.com ([209.85.216.171]:36683 "EHLO mail-qt0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751568AbdFFKyo (ORCPT ); Tue, 6 Jun 2017 06:54:44 -0400 MIME-Version: 1.0 In-Reply-To: <4e16c0aba047b068aaa41c1d180d98ccb441afd0.1496668108.git.arvind.yadav.cs@gmail.com> References: <4e16c0aba047b068aaa41c1d180d98ccb441afd0.1496668108.git.arvind.yadav.cs@gmail.com> From: Andy Shevchenko Date: Tue, 6 Jun 2017 13:54:37 +0300 Message-ID: Subject: Re: [PATCH] spi: pxa2xx: Handle return value of clk_prepare_enable To: Arvind Yadav Cc: Daniel Mack , Haojian Zhuang , Robert Jarzmik , Mark Brown , Geert Uytterhoeven , linux-arm Mailing List , linux-spi , "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1317 Lines: 40 On Tue, Jun 6, 2017 at 12:44 PM, Arvind Yadav wrote: > clk_prepare_enable() can fail here and we must check its return value. > @@ -1676,7 +1676,11 @@ static int pxa2xx_spi_probe(struct platform_device *pdev) > - clk_prepare_enable(ssp->clk); > + status = clk_prepare_enable(ssp->clk); This one looks fine. > @@ -1855,8 +1859,13 @@ static int pxa2xx_spi_resume(struct device *dev) > /* Enable the SSP clock */ > - if (!pm_runtime_suspended(dev)) > - clk_prepare_enable(ssp->clk); > + if (!pm_runtime_suspended(dev)) { > + status = clk_prepare_enable(ssp->clk); > + if (status) { > + dev_err(dev, "Failed to prepare clock\n"); > + return status; > + } This... > @@ -1886,8 +1895,7 @@ static int pxa2xx_spi_runtime_resume(struct device *dev) > { > struct driver_data *drv_data = dev_get_drvdata(dev); > > - clk_prepare_enable(drv_data->ssp->clk); > - return 0; > + return clk_prepare_enable(drv_data->ssp->clk); ...and especially this should be carefully checked since there are differences in behaviour how system or driver will be resumed. So, the question is how did you test it? -- With Best Regards, Andy Shevchenko