[2.6 patch] NETCONSOLE must depend on INET

STALE7681d

11 messages, 3 authors, 2005-07-27 · open the first message on its own page

[2.6 patch] NETCONSOLE must depend on INET

From: Adrian Bunk <hidden>
Date: 2005-07-19 18:29:28

NETCONSOLE=y and INET=n results in the following compile error:

<--  snip  -->

...
  LD      .tmp_vmlinux1
net/built-in.o: In function `netpoll_parse_options':
: undefined reference to `in_aton'
net/built-in.o: In function `netpoll_parse_options':
: undefined reference to `in_aton'
make: *** [.tmp_vmlinux1] Error 1

<--  snip  -->


Signed-off-by: Adrian Bunk <redacted>
--- linux-2.6.13-rc3/drivers/net/Kconfig.old	2005-07-19 19:29:25.000000000 +0200
+++ linux-2.6.13-rc3/drivers/net/Kconfig	2005-07-19 19:29:37.000000000 +0200
@@ -2544,7 +2544,7 @@
 
 config NETCONSOLE
 	tristate "Network console logging support (EXPERIMENTAL)"
-	depends on NETDEVICES && EXPERIMENTAL
+	depends on NETDEVICES && INET && EXPERIMENTAL
 	---help---
 	If you want to log kernel messages over the network, enable this.
 	See <file:Documentation/networking/netconsole.txt> for details.

Re: [2.6 patch] NETCONSOLE must depend on INET

From: "David S. Miller" <davem@davemloft.net>
Date: 2005-07-19 21:05:01

From: Adrian Bunk <redacted>
Date: Tue, 19 Jul 2005 20:29:19 +0200
NETCONSOLE=y and INET=n results in the following compile error:
Also applied, thanks Adrian.

Re: [2.6 patch] NETCONSOLE must depend on INET

From: Matt Mackall <hidden>
Date: 2005-07-26 23:21:06

On Tue, Jul 19, 2005 at 02:01:04PM -0700, David S. Miller wrote:
From: Adrian Bunk <redacted>
Date: Tue, 19 Jul 2005 20:29:19 +0200
quoted
NETCONSOLE=y and INET=n results in the following compile error:
Also applied, thanks Adrian.
I should have been cc:ed on this.

This problem also exists in PKTGEN. And this fix is incorrect as
neither is dependent on the IP part of the networking stack in any
substantive way. The right fix is to make inet_aton available outside
of CONFIG_INET (preferred) or making private copies of inet_aton.

-- 
Mathematics is the supreme nostalgia of our time.

Re: [2.6 patch] NETCONSOLE must depend on INET

From: "David S. Miller" <davem@davemloft.net>
Date: 2005-07-26 23:33:45

From: Matt Mackall <redacted>
Date: Tue, 26 Jul 2005 16:20:43 -0700
This problem also exists in PKTGEN. And this fix is incorrect as
neither is dependent on the IP part of the networking stack in any
substantive way. The right fix is to make inet_aton available outside
of CONFIG_INET (preferred) or making private copies of inet_aton.
Adrian posted a fix, you whine, that's why Adrian's fix
went in :-)

More seriously, please submit a version of whatever you
believe to be the more correct fix so it can be reviewed
and integrated.

Re: [2.6 patch] NETCONSOLE must depend on INET

From: Matt Mackall <hidden>
Date: 2005-07-27 00:01:22

On Tue, Jul 26, 2005 at 04:32:02PM -0700, David S. Miller wrote:
From: Matt Mackall <redacted>
Date: Tue, 26 Jul 2005 16:20:43 -0700
quoted
This problem also exists in PKTGEN. And this fix is incorrect as
neither is dependent on the IP part of the networking stack in any
substantive way. The right fix is to make inet_aton available outside
of CONFIG_INET (preferred) or making private copies of inet_aton.
Adrian posted a fix, you whine, that's why Adrian's fix
went in :-)
Adrian's fix is the moral equivalent of throwing in a cast to shut up
a compiler warning for a legitimate bug.
 
More seriously, please submit a version of whatever you
believe to be the more correct fix so it can be reviewed
and integrated.
Do you have a preferred location to put this function or
shall I invent one?

-- 
Mathematics is the supreme nostalgia of our time.

Re: [2.6 patch] NETCONSOLE must depend on INET

From: "David S. Miller" <davem@davemloft.net>
Date: 2005-07-27 00:05:01

From: Matt Mackall <redacted>
Date: Tue, 26 Jul 2005 16:58:24 -0700
On Tue, Jul 26, 2005 at 04:32:02PM -0700, David S. Miller wrote:
quoted
More seriously, please submit a version of whatever you
believe to be the more correct fix so it can be reviewed
and integrated.
Do you have a preferred location to put this function or
shall I invent one?
I actually can't wait to see where you're going to
to put a function that transforms "IPV4 addresses"
from ascii other than some place protected by CONFIG_INET.
:-)

Re: [2.6 patch] NETCONSOLE must depend on INET

From: Matt Mackall <hidden>
Date: 2005-07-27 02:37:15

[sch added to cc: as I think he's the effective pktgen maintainer]

On Tue, Jul 26, 2005 at 05:03:49PM -0700, David S. Miller wrote:
From: Matt Mackall <redacted>
Date: Tue, 26 Jul 2005 16:58:24 -0700
quoted
On Tue, Jul 26, 2005 at 04:32:02PM -0700, David S. Miller wrote:
quoted
More seriously, please submit a version of whatever you
believe to be the more correct fix so it can be reviewed
and integrated.
Do you have a preferred location to put this function or
shall I invent one?
I actually can't wait to see where you're going to
to put a function that transforms "IPV4 addresses"
from ascii other than some place protected by CONFIG_INET.
:-)
# HG changeset patch
# User mpm@selenic.com
# Node ID 6cdd6f36d53678a016cfbf5ce667cbd91504d538
# Parent  75716ae25f9d87ee2a5ef7c4df2d8f86e0f3f762
Move in_aton from net/ipv4/utils.c to net/core/utils.c

Move in_aton to allow netpoll and pktgen to work without the rest of
the IPv4 stack. Fix whitespace and add comment for the odd placement.

Delete now-empty net/ipv4/utils.c

Re-enable netpoll/netconsole without CONFIG_INET

Signed-off-by: Matt Mackall <redacted>

diff -r 75716ae25f9d -r 6cdd6f36d536 drivers/net/Kconfig
--- a/drivers/net/Kconfig	Tue Jul 26 23:21:24 2005
+++ b/drivers/net/Kconfig	Wed Jul 27 02:31:24 2005
@@ -2544,7 +2544,7 @@
 
 config NETCONSOLE
 	tristate "Network console logging support (EXPERIMENTAL)"
-	depends on NETDEVICES && INET && EXPERIMENTAL
+	depends on NETDEVICES && EXPERIMENTAL
 	---help---
 	If you want to log kernel messages over the network, enable this.
 	See <file:Documentation/networking/netconsole.txt> for details.
diff -r 75716ae25f9d -r 6cdd6f36d536 net/core/utils.c
--- a/net/core/utils.c	Tue Jul 26 23:21:24 2005
+++ b/net/core/utils.c	Wed Jul 27 02:31:24 2005
@@ -23,9 +23,9 @@
 #include <linux/percpu.h>
 #include <linux/init.h>
 
+#include <asm/byteorder.h>
 #include <asm/system.h>
 #include <asm/uaccess.h>
-
 
 /*
   This is a maximally equidistributed combined Tausworthe generator
@@ -153,3 +153,38 @@
 EXPORT_SYMBOL(net_random);
 EXPORT_SYMBOL(net_ratelimit);
 EXPORT_SYMBOL(net_srandom);
+
+/*
+ * Convert an ASCII string to binary IP.
+ * This is outside of net/ipv4/ because various code that uses IP addresses
+ * is otherwise not dependent on the TCP/IP stack.
+ */
+
+__u32 in_aton(const char *str)
+{
+	unsigned long l;
+	unsigned int val;
+	int i;
+
+	l = 0;
+	for (i = 0; i < 4; i++)
+	{
+		l <<= 8;
+		if (*str != '\0')
+		{
+			val = 0;
+			while (*str != '\0' && *str != '.')
+			{
+				val *= 10;
+				val += *str - '0';
+				str++;
+			}
+			l |= val;
+			if (*str != '\0')
+				str++;
+		}
+	}
+	return(htonl(l));
+}
+
+EXPORT_SYMBOL(in_aton);
diff -r 75716ae25f9d -r 6cdd6f36d536 net/ipv4/Makefile
--- a/net/ipv4/Makefile	Tue Jul 26 23:21:24 2005
+++ b/net/ipv4/Makefile	Wed Jul 27 02:31:24 2005
@@ -2,7 +2,7 @@
 # Makefile for the Linux TCP/IP (INET) layer.
 #
 
-obj-y     := utils.o route.o inetpeer.o protocol.o \
+obj-y     := route.o inetpeer.o protocol.o \
 	     ip_input.o ip_fragment.o ip_forward.o ip_options.o \
 	     ip_output.o ip_sockglue.o \
 	     tcp.o tcp_input.o tcp_output.o tcp_timer.o tcp_ipv4.o \
diff -r 75716ae25f9d -r 6cdd6f36d536 net/ipv4/utils.c
--- a/net/ipv4/utils.c	Tue Jul 26 23:21:24 2005
+++ /dev/null	Wed Jul 27 02:31:24 2005
@@ -1,59 +0,0 @@
-/*
- * INET		An implementation of the TCP/IP protocol suite for the LINUX
- *		operating system.  INET is implemented using the  BSD Socket
- *		interface as the means of communication with the user level.
- *
- *		Various kernel-resident INET utility functions; mainly
- *		for format conversion and debugging output.
- *
- * Version:	$Id: utils.c,v 1.8 2000/10/03 07:29:01 anton Exp $
- *
- * Author:	Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
- *
- * Fixes:
- *		Alan Cox	:	verify_area check.
- *		Alan Cox	:	removed old debugging.
- *		Andi Kleen	:	add net_ratelimit()  
- *
- *		This program is free software; you can redistribute it and/or
- *		modify it under the terms of the GNU General Public License
- *		as published by the Free Software Foundation; either version
- *		2 of the License, or (at your option) any later version.
- */
-
-#include <linux/module.h>
-#include <linux/types.h>
-#include <asm/byteorder.h>
-
-/*
- *	Convert an ASCII string to binary IP. 
- */
- 
-__u32 in_aton(const char *str)
-{
-	unsigned long l;
-	unsigned int val;
-	int i;
-
-	l = 0;
-	for (i = 0; i < 4; i++) 
-	{
-		l <<= 8;
-		if (*str != '\0') 
-		{
-			val = 0;
-			while (*str != '\0' && *str != '.') 
-			{
-				val *= 10;
-				val += *str - '0';
-				str++;
-			}
-			l |= val;
-			if (*str != '\0') 
-				str++;
-		}
-	}
-	return(htonl(l));
-}
-
-EXPORT_SYMBOL(in_aton);

-- 
Mathematics is the supreme nostalgia of our time.

Re: [2.6 patch] NETCONSOLE must depend on INET

From: "David S. Miller" <davem@davemloft.net>
Date: 2005-07-27 02:53:06

From: Matt Mackall <redacted>
Date: Tue, 26 Jul 2005 19:36:37 -0700
[sch added to cc: as I think he's the effective pktgen maintainer]
No, that would be Robert Olsson.
Move in_aton from net/ipv4/utils.c to net/core/utils.c
Fair enough.

Re: [2.6 patch] NETCONSOLE must depend on INET

From: Matt Mackall <hidden>
Date: 2005-07-27 20:49:07

On Wed, Jul 27, 2005 at 01:19:00PM -0700, David S. Miller wrote:
From: Matt Mackall <redacted>
Date: Tue, 26 Jul 2005 19:36:37 -0700
quoted
# HG changeset patch
# User mpm@selenic.com
# Node ID 6cdd6f36d53678a016cfbf5ce667cbd91504d538
# Parent  75716ae25f9d87ee2a5ef7c4df2d8f86e0f3f762
Move in_aton from net/ipv4/utils.c to net/core/utils.c
This patch doesn't apply, in the current 2.6.x GIT tree
NETCONSOLE does not depend on NETDEVICES.
Odd, gitweb of Linus' tree seems to disagree. I see it depends on
NETDEVICES && INET && EXPERIMENTAL. NETDEVICES has been there since
the beginning of git history and according to my Mercurial import from
BKCVS, it's been dependent on NETDEVICES since I first submitted it.

-- 
Mathematics is the supreme nostalgia of our time.

Re: [2.6 patch] NETCONSOLE must depend on INET

From: "David S. Miller" <davem@davemloft.net>
Date: 2005-07-27 21:14:00

From: Matt Mackall <redacted>
Date: Wed, 27 Jul 2005 13:46:22 -0700
Odd, gitweb of Linus' tree seems to disagree. I see it depends on
NETDEVICES && INET && EXPERIMENTAL. NETDEVICES has been there since
the beginning of git history and according to my Mercurial import from
BKCVS, it's been dependent on NETDEVICES since I first submitted it.
Sorry, that's a result of a local change I just added
to fix up presentation the net device family Kconfig's.

Re: [2.6 patch] NETCONSOLE must depend on INET

From: "David S. Miller" <davem@davemloft.net>
Date: 2005-07-27 22:49:03

From: Matt Mackall <redacted>
Date: Tue, 26 Jul 2005 19:36:37 -0700
# HG changeset patch
# User mpm@selenic.com
# Node ID 6cdd6f36d53678a016cfbf5ce667cbd91504d538
# Parent  75716ae25f9d87ee2a5ef7c4df2d8f86e0f3f762
Move in_aton from net/ipv4/utils.c to net/core/utils.c
This patch doesn't apply, in the current 2.6.x GIT tree
NETCONSOLE does not depend on NETDEVICES.

Please fix up this patch so that I can apply it.
Thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help