diff mbox

linux-next: build failure after merge of the final tree (net-next tree related)

Message ID 20111123150004.59be04eb36c480ec44edc9d5@canb.auug.org.au
State Superseded, archived
Delegated to: David Miller
Headers show

Commit Message

Stephen Rothwell Nov. 23, 2011, 4 a.m. UTC
Hi all,

After merging the final tree, today's linux-next build (powerpc allnoconfig)
failed like this:

In file included from include/linux/netdevice.h:53:0,
                 from include/linux/icmpv6.h:173,
                 from include/linux/ipv6.h:220,
                 from include/net/ipv6.h:16,
                 from include/linux/sunrpc/clnt.h:26,
                 from include/linux/nfs_fs.h:50,
                 from init/do_mounts.c:20:
include/net/netprio_cgroup.h:23:29: error: field 'css' has incomplete type

And several more similar.

Caused by commit 5bc1421e34ec ("net: add network priority cgroup
infrastructure (v4)").

I have added the following (minimal, but probably not optimal) patch for
today:

From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Wed, 23 Nov 2011 14:49:49 +1100
Subject: [PATCH] net: fix build error in network priority cgroup
 infrastructure

Fixes this error:

In file included from include/linux/netdevice.h:53:0,
                 from include/linux/icmpv6.h:173,
                 from include/linux/ipv6.h:220,
                 from include/net/ipv6.h:16,
                 from include/linux/sunrpc/clnt.h:26,
                 from include/linux/nfs_fs.h:50,
                 from init/do_mounts.c:20:
include/net/netprio_cgroup.h:23:29: error: field 'css' has incomplete type

When CONFIG_CGROUPS is not set.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 include/net/netprio_cgroup.h |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

Comments

Neil Horman Nov. 23, 2011, 12:09 p.m. UTC | #1
On Wed, Nov 23, 2011 at 03:00:04PM +1100, Stephen Rothwell wrote:
> Hi all,
> 
> After merging the final tree, today's linux-next build (powerpc allnoconfig)
> failed like this:
> 
> In file included from include/linux/netdevice.h:53:0,
>                  from include/linux/icmpv6.h:173,
>                  from include/linux/ipv6.h:220,
>                  from include/net/ipv6.h:16,
>                  from include/linux/sunrpc/clnt.h:26,
>                  from include/linux/nfs_fs.h:50,
>                  from init/do_mounts.c:20:
> include/net/netprio_cgroup.h:23:29: error: field 'css' has incomplete type
> 
> And several more similar.
> 
> Caused by commit 5bc1421e34ec ("net: add network priority cgroup
> infrastructure (v4)").
> 
> I have added the following (minimal, but probably not optimal) patch for
> today:
> 
> From: Stephen Rothwell <sfr@canb.auug.org.au>
> Date: Wed, 23 Nov 2011 14:49:49 +1100
> Subject: [PATCH] net: fix build error in network priority cgroup
>  infrastructure
> 
> Fixes this error:
> 
> In file included from include/linux/netdevice.h:53:0,
>                  from include/linux/icmpv6.h:173,
>                  from include/linux/ipv6.h:220,
>                  from include/net/ipv6.h:16,
>                  from include/linux/sunrpc/clnt.h:26,
>                  from include/linux/nfs_fs.h:50,
>                  from init/do_mounts.c:20:
> include/net/netprio_cgroup.h:23:29: error: field 'css' has incomplete type
> 
> When CONFIG_CGROUPS is not set.
> 
> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
> ---
>  include/net/netprio_cgroup.h |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/include/net/netprio_cgroup.h b/include/net/netprio_cgroup.h
> index c432e99..da71b91 100644
> --- a/include/net/netprio_cgroup.h
> +++ b/include/net/netprio_cgroup.h
> @@ -20,7 +20,9 @@
>  
>  struct cgroup_netprio_state
>  {
> +#ifdef CONFIG_CGROUPS
>  	struct cgroup_subsys_state css;
> +#endif
>  	u32 prioidx;
>  };
>  
> -- 
> 1.7.7.3
> 
> -- 
> Cheers,
> Stephen Rothwell                    sfr@canb.auug.org.au
FYI, I've got a more appropriate fix building right now getting posted for the
net-next tree.  I'll cc you on it.

Neil



--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Andrew Morton Nov. 23, 2011, 11:02 p.m. UTC | #2
On Wed, 23 Nov 2011 07:09:37 -0500
Neil Horman <nhorman@tuxdriver.com> wrote:

> On Wed, Nov 23, 2011 at 03:00:04PM +1100, Stephen Rothwell wrote:
> > Hi all,
> > 
> > After merging the final tree, today's linux-next build (powerpc allnoconfig)
> > failed like this:
> > 
> > In file included from include/linux/netdevice.h:53:0,
> >                  from include/linux/icmpv6.h:173,
> >                  from include/linux/ipv6.h:220,
> >                  from include/net/ipv6.h:16,
> >                  from include/linux/sunrpc/clnt.h:26,
> >                  from include/linux/nfs_fs.h:50,
> >                  from init/do_mounts.c:20:
> > include/net/netprio_cgroup.h:23:29: error: field 'css' has incomplete type
>
> ...
>
> FYI, I've got a more appropriate fix building right now getting posted for the
> net-next tree.  I'll cc you on it.

This header looks to be pretty screwed up:

- Extraneous newline after "struct cgroup_netprio_state"

- Weird special-casing of the CONFIG_CGROUPS &&
  !CONFIG_NETPRIO_CGROUP case looks suspicious.

- Unnecessary use of IS_ENABLED - jsut use #ifdef CONFIG_NETPRIO_CGROUP

- Adds code stubs specifically for the CONFIG_CGROUPS &&
  !CONFIG_NETPRIO_CGROUP case.  Doesn't add any for the !CONFIG_CGROUPS
  case.  Seems wrong.

- Uses empty macros for the sock_update_netprioidx() and
  skb_update_prio() which can cause build errors.  Should be changed to
  plain old typechecked inline C functions.  If that causes build
  errors then something else is screwed up.

- Adds a stub for skb_update_prio() but there's no non-stub version
  of it.

also

- doesn't compile


Needs a thorough redo.  Please take a look at the other cgroup
subsystem headers.  The basic pattern is

#ifdef CONFIG_FOO_CGROUP
<definitions and declarations>
#else
<any needed stubs go here>
#endif

And that's it.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller Nov. 23, 2011, 11:44 p.m. UTC | #3
From: Andrew Morton <akpm@linux-foundation.org>
Date: Wed, 23 Nov 2011 15:02:13 -0800

> Needs a thorough redo.  Please take a look at the other cgroup
> subsystem headers.  The basic pattern is
> 
> #ifdef CONFIG_FOO_CGROUP
> <definitions and declarations>
> #else
> <any needed stubs go here>
> #endif
> 
> And that's it.

I told Neil to put the stub in net/core/dev.c since that's the one and
only call site.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/include/net/netprio_cgroup.h b/include/net/netprio_cgroup.h
index c432e99..da71b91 100644
--- a/include/net/netprio_cgroup.h
+++ b/include/net/netprio_cgroup.h
@@ -20,7 +20,9 @@ 
 
 struct cgroup_netprio_state
 {
+#ifdef CONFIG_CGROUPS
 	struct cgroup_subsys_state css;
+#endif
 	u32 prioidx;
 };