public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] Question about compile warnings of exynos clock
@ 2015-01-13  2:24 Joonyoung Shim
  2015-01-13  2:27 ` Simon Glass
  0 siblings, 1 reply; 11+ messages in thread
From: Joonyoung Shim @ 2015-01-13  2:24 UTC (permalink / raw)
  To: u-boot

Hi,

I found below compile warnings,

  CC      arch/arm/cpu/armv7/exynos/clock.o
arch/arm/cpu/armv7/exynos/clock.c: In function ?clock_get_periph_rate?:
arch/arm/cpu/armv7/exynos/clock.c:265:47: warning: array subscript is above array bounds [-Warray-bounds]
  struct clk_bit_info *bit_info = &clk_bit_info[peripheral];
                                               ^
arch/arm/cpu/armv7/exynos/clock.c:265:47: warning: array subscript is above array bounds [-Warray-bounds]

...
> static unsigned long exynos5_get_periph_rate(int peripheral)
> {
>         struct clk_bit_info *bit_info = &clk_bit_info[peripheral];
>

This can access out of bounds of clk_bit_info[] array from
exynos5_get_periph_rate(). The peripheral value comes from
enum periph_id but it gets out of count clk_bit_info[] array.

So, i don't think exynos5_get_periph_rate is working correctly.
Currently, exynos5_get_periph_rate is used by clock_get_periph_rate only
from get_pwm_clk.

Is it ongoing to work for generic api to get the clk freq? If not,
let's remove exynos5_get_periph_rate and clock_get_periph_rate.

Thanks.

^ permalink raw reply	[flat|nested] 11+ messages in thread
* [U-Boot] Question about compile warnings of exynos clock
@ 2015-01-13  5:40 Akshay Saraswat
  2015-01-13  5:56 ` Joonyoung Shim
  2015-01-13  5:58 ` Jaehoon Chung
  0 siblings, 2 replies; 11+ messages in thread
From: Akshay Saraswat @ 2015-01-13  5:40 UTC (permalink / raw)
  To: u-boot

Hi,

>Hi,
>
>
>On 01/13/2015 11:56 AM, Simon Glass wrote:
>> Hi,
>> 
>> On 12 January 2015 at 18:51, Joonyoung Shim <jy0922.shim@samsung.com> wrote:
>>> Hi,
>>>
>>> On 01/13/2015 11:47 AM, Simon Glass wrote:
>>>> Hi,
>>>>
>>>> On 12 January 2015 at 18:36, Joonyoung Shim <jy0922.shim@samsung.com> wrote:
>>>>> Hi,
>>>>>
>>>>> On 01/13/2015 11:27 AM, Simon Glass wrote:
>>>>>> Hi,
>>>>>>
>>>>>> On 12 January 2015 at 18:24, Joonyoung Shim <jy0922.shim@samsung.com> wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> I found below compile warnings,
>>>>>>>
>>>>>>>   CC      arch/arm/cpu/armv7/exynos/clock.o
>>>>>>> arch/arm/cpu/armv7/exynos/clock.c: In function .clock_get_periph_rate.:
>>>>>>> arch/arm/cpu/armv7/exynos/clock.c:265:47: warning: array subscript is above array bounds [-Warray-bounds]
>>>>>>>   struct clk_bit_info *bit_info = &clk_bit_info[peripheral];
>>>>>>>                                                ^
>>>>>>> arch/arm/cpu/armv7/exynos/clock.c:265:47: warning: array subscript is above array bounds [-Warray-bounds]
>>>>>>>
>>>>>>> ...
>>>>>>>> static unsigned long exynos5_get_periph_rate(int peripheral)
>>>>>>>> {
>>>>>>>>         struct clk_bit_info *bit_info = &clk_bit_info[peripheral];
>>>>>>>>
>>>>>>>
>>>>>>> This can access out of bounds of clk_bit_info[] array from
>>>>>>> exynos5_get_periph_rate(). The peripheral value comes from
>>>>>>> enum periph_id but it gets out of count clk_bit_info[] array.
>>>>>>>
>>>>>>> So, i don't think exynos5_get_periph_rate is working correctly.
>>>>>>> Currently, exynos5_get_periph_rate is used by clock_get_periph_rate only
>>>>>>> from get_pwm_clk.
>>>>>>>
>>>>>>> Is it ongoing to work for generic api to get the clk freq? If not,
>>>>>>> let's remove exynos5_get_periph_rate and clock_get_periph_rate.
>>>>>>
>>>>>> That's going in the wrong direction - these functions make the code
>>>>>> much easier to follow and refactor. We should remove get_pwm_clk(),
>>>>>> get_mmc_clk() etc. and use generic functions instead.
>>>>>>
>>>>>
>>>>> I know, but current codes are wrong, so first i want to correct it even
>>>>> if it is old way because it's really easy. And then we can go to generic
>>>>> functions.
>>>>
>>>> So not remove the generic functions?
>>>>
>>>> Is it this line which is broken?
>>>>
>>>> clock_get_periph_rate(PERIPH_ID_PWM0);
>>>>
>>>> If so, it seems like everything else uses its own function. It should
>>>> all move easily to the generic function I think.
>>>>
>>>
>>> The basic problem is the generic function is wrong.
>> 
>> Oh dear, does it not work for anything?
>
>I have posted the patch relevant to this. I removed the generic peripheral clock API.
>It's not used anywhere. Just get clock for pwm0.
>
>how about?
>
>https://patchwork.ozlabs.org/patch/426535/
>

I dont think it's a good idea to remove this function and expect to put in same
effort again in future. Instead, fixing this warning should be easier.

By the way, I don't see the mentioned warning when I compile ToT u-boot-samsung
for smdk5250 and smdk5420 with arm-2011.09 compiler. Do we need any other patch
or config to encounter this?

>
>Best Regards,
>Jaehoon Chung
>> 
>> Regards,
>> Simon
>> _______________________________________________
>> U-Boot mailing list
>> U-Boot at lists.denx.de
>> http://lists.denx.de/mailman/listinfo/u-boot

Regards,
Akshay Saraswat 

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2015-01-14  4:42 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-13  2:24 [U-Boot] Question about compile warnings of exynos clock Joonyoung Shim
2015-01-13  2:27 ` Simon Glass
2015-01-13  2:36   ` Joonyoung Shim
2015-01-13  2:47     ` Simon Glass
2015-01-13  2:51       ` Joonyoung Shim
2015-01-13  2:56         ` Simon Glass
2015-01-13  4:10           ` Jaehoon Chung
  -- strict thread matches above, loose matches on Subject: below --
2015-01-13  5:40 Akshay Saraswat
2015-01-13  5:56 ` Joonyoung Shim
2015-01-13  5:58 ` Jaehoon Chung
2015-01-14  4:42   ` Simon Glass

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox