lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20080327.193006.132922343.yoshfuji@linux-ipv6.org>
Date:	Thu, 27 Mar 2008 19:30:06 +0900 (JST)
From:	YOSHIFUJI Hideaki / 吉藤英明 
	<yoshfuji@...ux-ipv6.org>
To:	davem@...emloft.net
Cc:	sfr@...b.auug.org.au, linux-next@...r.kernel.org,
	netdev@...r.kernel.org, yoshfuji@...ux-ipv6.org
Subject: Re: linux-next: net build failure

In article <20080327.022206.100283150.davem@...emloft.net> (at Thu, 27 Mar 2008 02:22:06 -0700 (PDT)), David Miller <davem@...emloft.net> says:

> From: Stephen Rothwell <sfr@...b.auug.org.au>
> Date: Thu, 27 Mar 2008 18:24:41 +1100
> 
> > Today's linux-next build (powerpc allnoconfig (i.e. CONFIG_NET not
> > defined)) fails thusly:
> > 
> > In file included from include/linux/rtc.h:112,
> >                  from include/linux/efi.h:20,
> >                  from init/main.c:44:
> > include/linux/seq_file.h: In function 'seq_file_net':
> > include/linux/seq_file.h:81: error: 'init_net' undeclared (first use in this function)
> > include/linux/seq_file.h:81: error: (Each undeclared identifier is reported only once
> > include/linux/seq_file.h:81: error: for each function it appears in.)
> > 
> > Introduced by commit 1218854afa6f659be90b748cf1bc7badee954a35 ("[NET]
> > NETNS: Omit seq_net_private->net without CONFIG_NET_NS.").
> 
> Yoshifuji-san, please fix this.
> 
> I tried to, but the cases, especially those in netdevice.h, are
> difficult to resolve.
> 
> Thank you.

How about this?
I believe all functions are not used outside the net subsystem.

I'm still testing with allmodconfig but 
at least, allnoconfig works for me.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@...ux-ipv6.org>

diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 15fa84a..f51c89c 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -739,6 +739,7 @@ struct net_device
 #define	NETDEV_ALIGN		32
 #define	NETDEV_ALIGN_CONST	(NETDEV_ALIGN - 1)
 
+#ifdef CONFIG_NET
 /*
  * Net namespace inlines
  */
@@ -759,6 +760,7 @@ void dev_net_set(struct net_device *dev, struct net *net)
 	dev->nd_net = net;
 #endif
 }
+#endif
 
 /**
  *	netdev_priv - access network device private data
@@ -831,6 +833,7 @@ extern rwlock_t				dev_base_lock;		/* Device list lock */
 		list_for_each_entry_continue(d, &(net)->dev_base_head, dev_list)
 #define net_device_entry(lh)	list_entry(lh, struct net_device, dev_list)
 
+#ifdef CONFIG_NET
 static inline struct net_device *next_net_device(struct net_device *dev)
 {
 	struct list_head *lh;
@@ -846,6 +849,7 @@ static inline struct net_device *first_net_device(struct net *net)
 	return list_empty(&net->dev_base_head) ? NULL :
 		net_device_entry(net->dev_base_head.next);
 }
+#endif
 
 extern int 			netdev_boot_setup_check(struct net_device *dev);
 extern unsigned long		netdev_boot_base(const char *prefix, int unit);
diff --git a/include/linux/seq_file.h b/include/linux/seq_file.h
index d870a82..ff51e03 100644
--- a/include/linux/seq_file.h
+++ b/include/linux/seq_file.h
@@ -70,6 +70,7 @@ struct seq_net_private {
 #endif
 };
 
+#ifdef CONFIG_NET
 int seq_open_net(struct inode *, struct file *,
 		 const struct seq_operations *, int);
 int seq_release_net(struct inode *, struct file *);
@@ -81,6 +82,7 @@ static inline struct net *seq_file_net(struct seq_file *seq)
 	return &init_net;
 #endif
 }
+#endif
 
 #endif
 #endif
diff --git a/include/net/neighbour.h b/include/net/neighbour.h
index 8bec0d6..aa85a41 100644
--- a/include/net/neighbour.h
+++ b/include/net/neighbour.h
@@ -218,6 +218,7 @@ extern struct neighbour 	*neigh_event_ns(struct neigh_table *tbl,
 extern struct neigh_parms	*neigh_parms_alloc(struct net_device *dev, struct neigh_table *tbl);
 extern void			neigh_parms_release(struct neigh_table *tbl, struct neigh_parms *parms);
 
+#ifdef CONFIG_NET
 static inline
 struct net			*neigh_parms_net(const struct neigh_parms *parms)
 {
@@ -227,6 +228,7 @@ struct net			*neigh_parms_net(const struct neigh_parms *parms)
 	return &init_net;
 #endif
 }
+#endif
 
 extern unsigned long		neigh_rand_reach_time(unsigned long base);
 
@@ -235,6 +237,7 @@ extern void			pneigh_enqueue(struct neigh_table *tbl, struct neigh_parms *p,
 extern struct pneigh_entry	*pneigh_lookup(struct neigh_table *tbl, struct net *net, const void *key, struct net_device *dev, int creat);
 extern int			pneigh_delete(struct neigh_table *tbl, struct net *net, const void *key, struct net_device *dev);
 
+#ifdef CONFIG_NET
 static inline
 struct net			*pneigh_net(const struct pneigh_entry *pneigh)
 {
@@ -244,6 +247,7 @@ struct net			*pneigh_net(const struct pneigh_entry *pneigh)
 	return &init_net;
 #endif
 }
+#endif
 
 extern void neigh_app_ns(struct neighbour *n);
 extern void neigh_for_each(struct neigh_table *tbl, void (*cb)(struct neighbour *, void *), void *cookie);
diff --git a/include/net/sock.h b/include/net/sock.h
index 1c9d059..a6047cb 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -1347,6 +1347,7 @@ static inline void sk_eat_skb(struct sock *sk, struct sk_buff *skb, int copied_e
 }
 #endif
 
+#ifdef CONFIG_NET
 static inline
 struct net *sock_net(const struct sock *sk)
 {
@@ -1376,6 +1377,7 @@ static inline void sk_change_net(struct sock *sk, struct net *net)
 	put_net(sock_net(sk));
 	sock_net_set(sk, net);
 }
+#endif
 
 extern void sock_enable_timestamp(struct sock *sk);
 extern int sock_get_timestamp(struct sock *, struct timeval __user *);

-- 
YOSHIFUJI Hideaki @ USAGI Project  <yoshfuji@...ux-ipv6.org>
GPG-FP  : 9022 65EB 1ECF 3AD1 0BDF  80D8 4807 F894 E062 0EEA
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ