lkml.org 
[lkml]   [2015]   [Dec]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
SubjectRe: [PATCH 11/19] clocksource: fix __ftm_clk_init result
From
Date
On 12/14/2015 11:34 AM, Andrzej Hajda wrote:
> Hi,
>
> Ping.

[ ... ]

Please as you fix this, also fix the caller.

freq = __ftm_clk_init(np, "ftm-evt-counter-en", "ftm-evt");
-if (freq <= 0)
+if (!freq)

and, by the way, isn't there an issue if in the DT "ftm-src" is declared
before "ftm-evt" ?


> On 09/24/2015 04:00 PM, Andrzej Hajda wrote:
>> The function tries to return clock frequency (unsigned long) or error
>> (int < 0). Using int as a result could be dangerous. On the other side
>> caller is not interested in error value, so the best solution is to
>> return frequency or zero in case of error, for this unsigned long is OK.
>>
>> The problem has been detected using proposed semantic patch
>> scripts/coccinelle/tests/assign_signed_to_unsigned.cocci [1].
>>
>> [1]: http://permalink.gmane.org/gmane.linux.kernel/2046107
>>
>> Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
>> ---
>> Hi,
>>
>> To avoid problems with too many mail recipients I have sent whole
>> patchset only to LKML. Anyway patches have no dependencies.
>>
>> Regards
>> Andrzej
>> ---
>> drivers/clocksource/fsl_ftm_timer.c | 8 ++++----
>> 1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/clocksource/fsl_ftm_timer.c b/drivers/clocksource/fsl_ftm_timer.c
>> index ef43469..11a7ae7 100644
>> --- a/drivers/clocksource/fsl_ftm_timer.c
>> +++ b/drivers/clocksource/fsl_ftm_timer.c
>> @@ -248,7 +248,7 @@ static int __init ftm_clocksource_init(unsigned long freq)
>> return 0;
>> }
>>
>> -static int __init __ftm_clk_init(struct device_node *np, char *cnt_name,
>> +static unsigned long __init __ftm_clk_init(struct device_node *np, char *cnt_name,
>> char *ftm_name)
>> {
>> struct clk *clk;
>> @@ -257,19 +257,19 @@ static int __init __ftm_clk_init(struct device_node *np, char *cnt_name,
>> clk = of_clk_get_by_name(np, cnt_name);
>> if (IS_ERR(clk)) {
>> pr_err("ftm: Cannot get \"%s\": %ld\n", cnt_name, PTR_ERR(clk));
>> - return PTR_ERR(clk);
>> + return 0;
>> }
>> err = clk_prepare_enable(clk);
>> if (err) {
>> pr_err("ftm: clock failed to prepare+enable \"%s\": %d\n",
>> cnt_name, err);
>> - return err;
>> + return 0;
>> }
>>
>> clk = of_clk_get_by_name(np, ftm_name);
>> if (IS_ERR(clk)) {
>> pr_err("ftm: Cannot get \"%s\": %ld\n", ftm_name, PTR_ERR(clk));
>> - return PTR_ERR(clk);
>> + return 0;
>> }
>> err = clk_prepare_enable(clk);
>> if (err)
>


--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog



\
 
 \ /
  Last update: 2015-12-14 15:01    [W:1.693 / U:0.248 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site