[U-Boot] [PATCH] rmobile: kzm9g: Fix warnin in cmp_loop function

Nobuhiro Iwamatsu iwamatsu at nigauri.org
Fri Jul 20 01:06:32 CEST 2012


Hi,

2012/7/6 Albert ARIBAUD <albert.u.boot at aribaud.net>:
> Hi Nobuhiro,
>
> On Fri,  6 Jul 2012 09:07:30 +0900, Nobuhiro Iwamatsu
> <nobuhiro.iwamatsu.yj at renesas.com> wrote:
>> cmp_loop function was used from the structure of register.
>> And for the member of this structure, volatile is defined.
>> Since a volatile declaration of cmp_loop function is not made
>> by argument, made warning by compiler. This fixes this problem.
>>
>> Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj at renesas.com>
>> ---
>>  board/kmc/kzm9g/kzm9g.c |    2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/board/kmc/kzm9g/kzm9g.c b/board/kmc/kzm9g/kzm9g.c
>> index ad72c8d..8d7c61a 100644
>> --- a/board/kmc/kzm9g/kzm9g.c
>> +++ b/board/kmc/kzm9g/kzm9g.c
>> @@ -48,7 +48,7 @@ DECLARE_GLOBAL_DATA_PTR;
>>  #define PORT34CR (0xE6051022)
>>  #define PORT35CR (0xE6051023)
>>
>> -static int cmp_loop(u32 *addr, u32 data, u32 cmp)
>> +static int cmp_loop(volatile u32 *addr, u32 data, u32 cmp)
>>  {
>>       int err = -1;
>>       int timeout = 100;
>
> I doubt cmp_loop needs this change. Volatile qualifiers do not make
> much sense in anything other than actual read or write instructions;
> if cmp_loop needs any volatile, it's as casts in its body, not as
> qualifiers in its signature. Fix the compiler warning by casting the
> actual argument in the *call* to cmp_loop to non-volatile instead.
>
> (incidentally, you should ask yourself why is the structure, or
> structure member, is qualified volatile in the first place; usually
> this is the sign that some code should instead use readl or writel
> and/or have isb() barriers at strategic places.)
>

Thank you for your comment.
You are right. I will fix structure member.

Best regards,
  Nobuhiro

-- 
Nobuhiro Iwamatsu
   iwamatsu at {nigauri.org / debian.org}
   GPG ID: 40AD1FA6


More information about the U-Boot mailing list