2009-09-22 16:34:44

by Stefan Richter

[permalink] [raw]
Subject: v2.6.31-7381-g7fa0772: new build warnings: kmemcheck, __deprecated, hugetlb, radeon

Latest git compiles with extreme noise:

In file included from include/net/inet_connection_sock.h:23,
from include/linux/tcp.h:178,
from include/linux/ipv6.h:215,
from include/net/ipv6.h:16,
from include/linux/sunrpc/clnt.h:25,
from include/linux/nfs_fs.h:52,
from kernel/sysctl.c:48:
include/net/inet_sock.h: In function 'inet_reqsk_alloc':
include/net/inet_sock.h:208: warning: ISO C90 forbids mixed declarations
and code

Vegard, this is obviously caused by commit
45e3ff82708c65c895d5c5882aff17ecf62a80b5.

$ grep KMEMCH .config
CONFIG_HAVE_ARCH_KMEMCHECK=y

(I.e. CONFIG_KMEMCHECK is off.)

More kmemcheck bogosity:

CC net/core/skbuff.o
In file included from include/net/ip.h:30,
from include/linux/errqueue.h:27,
from net/core/skbuff.c:59:
include/net/inet_sock.h: In function 'inet_reqsk_alloc':
include/net/inet_sock.h:208: warning: ISO C90 forbids mixed declarations
and code
net/core/skbuff.c: In function '__alloc_skb':
net/core/skbuff.c:205: warning: ISO C90 forbids mixed declarations and code
net/core/skbuff.c:206: warning: ISO C90 forbids mixed declarations and code
net/core/skbuff.c:227: warning: ISO C90 forbids mixed declarations and code
net/core/skbuff.c:228: warning: ISO C90 forbids mixed declarations and code
net/core/skbuff.c: In function 'skb_clone':
net/core/skbuff.c:645: warning: ISO C90 forbids mixed declarations and code
net/core/skbuff.c:646: warning: ISO C90 forbids mixed declarations and code


This one is older:

CC net/ethernet/eth.o
[...kmemcheck noise from inet_sock.h:208, and then...:]
net/ethernet/eth.c: At top level:
net/ethernet/eth.c:402: warning: 'print_mac' is deprecated (declared at
net/ethernet/eth.c:398)
net/ethernet/eth.c:402: warning: 'print_mac' is deprecated (declared at
net/ethernet/eth.c:398)

Obviously added by b5eb0589937eae2d58fca17fa45ed44152e772ed.
Johannes, can't the __deprecated logic be suppressed when print_mac is
used in EXPORT_SYMBOL?


Next one:

CC mm/mmap.o
mm/mmap.c: In function 'do_mmap_pgoff':
mm/mmap.c:953: warning: unused variable 'user'

Eric, this was added by 4e52780d41a741fb4861ae1df2413dd816ec11b1.

$ grep HUGETLB .config
# CONFIG_HUGETLBFS is not set
# CONFIG_HUGETLB_PAGE is not set


Next one:

CC [M] drivers/gpu/drm/radeon/radeon_ttm.o
drivers/gpu/drm/radeon/radeon_ttm.c: In function 'radeon_ttm_debugfs_init':
drivers/gpu/drm/radeon/radeon_ttm.c:714: warning: unused variable 'i'
drivers/gpu/drm/radeon/radeon_ttm.c: At top level:
drivers/gpu/drm/radeon/radeon_ttm.c:692: warning:
'radeon_mem_types_list' defined but not used
drivers/gpu/drm/radeon/radeon_ttm.c:693: warning:
'radeon_mem_types_names' defined but not used

Dave, added by fa8a123855e20068204982596b8fafceb1a67f0b.

$ grep -e RADEON -e DEBUG_FS .config
CONFIG_DRM_RADEON=m
CONFIG_FB_RADEON=y
CONFIG_FB_RADEON_I2C=y
# CONFIG_FB_RADEON_BACKLIGHT is not set
# CONFIG_FB_RADEON_DEBUG is not set
# CONFIG_DEBUG_FS is not set

--
Stefan Richter
-=====-==--= =--= =-==-
http://arcgraph.de/sr/


2009-09-23 06:39:10

by Johannes Berg

[permalink] [raw]
Subject: Re: v2.6.31-7381-g7fa0772: new build warnings: kmemcheck, __deprecated, hugetlb, radeon

On Tue, 2009-09-22 at 18:34 +0200, Stefan Richter wrote:

> This one is older:
>
> CC net/ethernet/eth.o
> [...kmemcheck noise from inet_sock.h:208, and then...:]
> net/ethernet/eth.c: At top level:
> net/ethernet/eth.c:402: warning: 'print_mac' is deprecated (declared at
> net/ethernet/eth.c:398)
> net/ethernet/eth.c:402: warning: 'print_mac' is deprecated (declared at
> net/ethernet/eth.c:398)
>
> Obviously added by b5eb0589937eae2d58fca17fa45ed44152e772ed.
> Johannes, can't the __deprecated logic be suppressed when print_mac is
> used in EXPORT_SYMBOL?

Not easily. But then we've already removed it completely by now afaik.

johannes


Attachments:
signature.asc (801.00 B)
This is a digitally signed message part

2009-09-23 07:19:59

by Jean Delvare

[permalink] [raw]
Subject: Re: v2.6.31-7381-g7fa0772: new build warnings: kmemcheck, __deprecated, hugetlb, radeon

Hi Stefan,

On Tue, 22 Sep 2009 18:34:16 +0200, Stefan Richter wrote:
> Latest git compiles with extreme noise:
>
> In file included from include/net/inet_connection_sock.h:23,
> from include/linux/tcp.h:178,
> from include/linux/ipv6.h:215,
> from include/net/ipv6.h:16,
> from include/linux/sunrpc/clnt.h:25,
> from include/linux/nfs_fs.h:52,
> from kernel/sysctl.c:48:
> include/net/inet_sock.h: In function 'inet_reqsk_alloc':
> include/net/inet_sock.h:208: warning: ISO C90 forbids mixed declarations
> and code
>
> Vegard, this is obviously caused by commit
> 45e3ff82708c65c895d5c5882aff17ecf62a80b5.

Actually not, it's caused by commit
181f7c5dd3832763bdf2756b6d2d8a49bdf12791
(kmemcheck: add missing braces to do-while in kmemcheck_annotate_bitfield)

And the fix would be:

From: Jean Delvare <[email protected]>
Subject: Fix build warning in kmemcheck_annotate_bitfield

Fix the following build warning:

include/net/inet_sock.h: In function 'inet_reqsk_alloc':
include/net/inet_sock.h:208: warning: ISO C90 forbids mixed declarations
and code

Signed-off-by: Jean Delvare <[email protected]>
Cc: Johannes Berg <[email protected]>
Cc: Signed-off-by: Vegard Nossum <[email protected]>
---
include/linux/kmemcheck.h | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

--- linux-2.6.32-pre.orig/include/linux/kmemcheck.h 2009-09-23 08:19:34.000000000 +0200
+++ linux-2.6.32-pre/include/linux/kmemcheck.h 2009-09-23 09:05:30.000000000 +0200
@@ -145,10 +145,12 @@ static inline bool kmemcheck_is_obj_init

#define kmemcheck_annotate_bitfield(ptr, name) \
do { \
+ int _n; \
+ \
if (!ptr) \
break; \
\
- int _n = (long) &((ptr)->name##_end) \
+ _n = (long) &((ptr)->name##_end) \
- (long) &((ptr)->name##_begin); \
BUILD_BUG_ON(_n < 0); \
\

--
Jean Delvare

2009-09-23 07:20:44

by Pekka Enberg

[permalink] [raw]
Subject: Re: v2.6.31-7381-g7fa0772: new build warnings: kmemcheck, __deprecated, hugetlb, radeon

On Tue, Sep 22, 2009 at 7:34 PM, Stefan Richter
<[email protected]> wrote:
> Latest git compiles with extreme noise:
>
> In file included from include/net/inet_connection_sock.h:23,
> ? ? ? ? ? ? ? ? from include/linux/tcp.h:178,
> ? ? ? ? ? ? ? ? from include/linux/ipv6.h:215,
> ? ? ? ? ? ? ? ? from include/net/ipv6.h:16,
> ? ? ? ? ? ? ? ? from include/linux/sunrpc/clnt.h:25,
> ? ? ? ? ? ? ? ? from include/linux/nfs_fs.h:52,
> ? ? ? ? ? ? ? ? from kernel/sysctl.c:48:
> include/net/inet_sock.h: In function 'inet_reqsk_alloc':
> include/net/inet_sock.h:208: warning: ISO C90 forbids mixed declarations and
> code
>
> Vegard, this is obviously caused by commit
> 45e3ff82708c65c895d5c5882aff17ecf62a80b5.
>
> $ grep KMEMCH .config
> CONFIG_HAVE_ARCH_KMEMCHECK=y
>
> (I.e. CONFIG_KMEMCHECK is off.)

Curious, I haven't seen this before. Is it coming from the
BUILD_BUG_ON() in kmemcheck_annotate_bitfield()? I can't seem to spot
the error.

Pekka

2009-09-23 07:21:34

by Pekka Enberg

[permalink] [raw]
Subject: Re: v2.6.31-7381-g7fa0772: new build warnings: kmemcheck, __deprecated, hugetlb, radeon

On Wed, Sep 23, 2009 at 10:19 AM, Jean Delvare <[email protected]> wrote:
> Hi Stefan,
>
> On Tue, 22 Sep 2009 18:34:16 +0200, Stefan Richter wrote:
>> Latest git compiles with extreme noise:
>>
>> In file included from include/net/inet_connection_sock.h:23,
>> ? ? ? ? ? ? ? ? ? from include/linux/tcp.h:178,
>> ? ? ? ? ? ? ? ? ? from include/linux/ipv6.h:215,
>> ? ? ? ? ? ? ? ? ? from include/net/ipv6.h:16,
>> ? ? ? ? ? ? ? ? ? from include/linux/sunrpc/clnt.h:25,
>> ? ? ? ? ? ? ? ? ? from include/linux/nfs_fs.h:52,
>> ? ? ? ? ? ? ? ? ? from kernel/sysctl.c:48:
>> include/net/inet_sock.h: In function 'inet_reqsk_alloc':
>> include/net/inet_sock.h:208: warning: ISO C90 forbids mixed declarations
>> and code
>>
>> Vegard, this is obviously caused by commit
>> 45e3ff82708c65c895d5c5882aff17ecf62a80b5.
>
> Actually not, it's caused by commit
> 181f7c5dd3832763bdf2756b6d2d8a49bdf12791
> (kmemcheck: add missing braces to do-while in kmemcheck_annotate_bitfield)
>
> And the fix would be:
>
> From: Jean Delvare <[email protected]>
> Subject: Fix build warning in kmemcheck_annotate_bitfield
>
> Fix the following build warning:
>
> include/net/inet_sock.h: In function 'inet_reqsk_alloc':
> include/net/inet_sock.h:208: warning: ISO C90 forbids mixed declarations
> and code
>
> Signed-off-by: Jean Delvare <[email protected]>
> Cc: Johannes Berg <[email protected]>
> Cc: Signed-off-by: Vegard Nossum <[email protected]>
> ---
> ?include/linux/kmemcheck.h | ? ?4 +++-
> ?1 file changed, 3 insertions(+), 1 deletion(-)
>
> --- linux-2.6.32-pre.orig/include/linux/kmemcheck.h ? ? 2009-09-23 08:19:34.000000000 +0200
> +++ linux-2.6.32-pre/include/linux/kmemcheck.h ?2009-09-23 09:05:30.000000000 +0200
> @@ -145,10 +145,12 @@ static inline bool kmemcheck_is_obj_init
>
> ?#define kmemcheck_annotate_bitfield(ptr, name) ? ? ? ? ? ? ? ? ? ? ? ? \
> ? ? ? ?do { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\
> + ? ? ? ? ? ? ? int _n; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? \
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? \
> ? ? ? ? ? ? ? ?if (!ptr) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? \
> ? ? ? ? ? ? ? ? ? ? ? ?break; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\
> - ? ? ? ? ? ? ? int _n = (long) &((ptr)->name##_end) ? ? ? ? ? ? ? ? ? ?\
> + ? ? ? ? ? ? ? _n = (long) &((ptr)->name##_end) ? ? ? ? ? ? ? ? ? ? ? ?\
> ? ? ? ? ? ? ? ? ? ? ? ?- (long) &((ptr)->name##_begin); ? ? ? ? ? ? ? ?\
> ? ? ? ? ? ? ? ?BUILD_BUG_ON(_n < 0); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? \
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\

Oh, I was looking at an old version. The fix looks good to me, thanks Jean!

Acked-by: Pekka Enberg <[email protected]>

2009-09-23 08:19:21

by Jean Delvare

[permalink] [raw]
Subject: Re: v2.6.31-7381-g7fa0772: new build warnings: kmemcheck, __deprecated, hugetlb, radeon

On Wed, 23 Sep 2009 09:19:58 +0200, Jean Delvare wrote:
> Signed-off-by: Jean Delvare <[email protected]>
> Cc: Johannes Berg <[email protected]>
> Cc: Signed-off-by: Vegard Nossum <[email protected]>

Oops, I messed up there. That was supposed to be a simple Cc:, bad
copy-and-paste, sorry. Please fix before pushing upstream.

--
Jean Delvare

2009-09-23 15:14:07

by Stefan Richter

[permalink] [raw]
Subject: Re: v2.6.31-7381-g7fa0772: new build warnings: kmemcheck, __deprecated, hugetlb, radeon

Pekka Enberg wrote:
> On Wed, Sep 23, 2009 at 10:19 AM, Jean Delvare <[email protected]> wrote:
[...]
>> --- linux-2.6.32-pre.orig/include/linux/kmemcheck.h 2009-09-23 08:19:34.000000000 +0200
>> +++ linux-2.6.32-pre/include/linux/kmemcheck.h 2009-09-23 09:05:30.000000000 +0200
>> @@ -145,10 +145,12 @@ static inline bool kmemcheck_is_obj_init
>>
>> #define kmemcheck_annotate_bitfield(ptr, name) \
>> do { \
>> + int _n; \
>> + \
>> if (!ptr) \
>> break; \
>> \
>> - int _n = (long) &((ptr)->name##_end) \
>> + _n = (long) &((ptr)->name##_end) \
>> - (long) &((ptr)->name##_begin); \
>> BUILD_BUG_ON(_n < 0); \
>> \
>
> Oh, I was looking at an old version. The fix looks good to me, thanks Jean!
>
> Acked-by: Pekka Enberg <[email protected]>

Things have been set into motion already, see akpm's comment to thread
"[PATCH] kmemcheck: clean up kmemcheck_annotate_bitfield",
http://lkml.org/lkml/2009/9/22/585
--
Stefan Richter
-=====-==--= =--= =-===
http://arcgraph.de/sr/