Thread (8 messages) flat view 8 messages, 3 authors, 2014-05-23

回复: Re: [PATCH linux-next] net/dccp/timer.c: use 'u64' instead of 's64' to avoid compiler's warning

From: 管雪涛 <hidden>
Date: 2014-05-22 23:58:31
Also in: lkml

----- David Miller [off-list ref] 写道:
From: Chen Gang <redacted>
Date: Wed, 21 May 2014 08:19:34 +0800
quoted
'dccp_timestamp_seed' is initialized once by ktime_get_real() in
dccp_timestamping_init(). It is always less than ktime_get_real()
in dccp_timestamp().

Then, ktime_us_delta() in dccp_timestamp() will always return positive
number. So can use manual type cast to let compiler and do_div() know
about it to avoid warning.

The related warning (with allmodconfig under unicore32):

    CC [M]  net/dccp/timer.o
  net/dccp/timer.c: In function ‘dccp_timestamp’:
  net/dccp/timer.c:285: warning: comparison of distinct pointer types lacks a cast


Signed-off-by: Chen Gang <redacted>
Applied to net-next, thanks.

But that type check in include/asm-generic/div64.h is bogus, it should
be checking sizeof(X) == 8 rather than the type thing, it just wants to
make sure that the value is 64-bit regardless of it's signedness.

The arch local implementations do not do this, and that's why very few
other people notice this warning.
Arch-dependent codes implement it with unsigned long long type.
And, every warning should not be ignored.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help