Skip to contentSkip to conversation

NETCONSOLE must depend on INET

PATCH In review Adrian Bunk 3 participants 11 messages Jul 19, 2005 – Jul 27, 2005

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 NETCONSOLE must depend on INET

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 -->

drivers/net/Kconfig renamed from drivers/net/Kconfig.old +1 -1
@@ -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.
maintainer
#1 lore raw

From: Adrian Bunk <[email protected]>
Date: Tue, 19 Jul 2005 20:29:19 +0200

Quoted 1 line

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

Also applied, thanks Adrian.

#2 lore raw
Quoted 6 lines · David S. Miller

From: Adrian Bunk <[email protected]>
Date: Tue, 19 Jul 2005 20:29:19 +0200

Quoted 1 line

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.

Signature · 1 line
Mathematics is the supreme nostalgia of our time.
maintainer
#3 lore raw

From: Matt Mackall <[email protected]>
Date: Tue, 26 Jul 2005 16:20:43 -0700

Quoted 4 lines

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.

#4 lore raw
Quoted 10 lines · David S. Miller

From: Matt Mackall <[email protected]>
Date: Tue, 26 Jul 2005 16:20:43 -0700

Quoted 4 lines

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.

Quoted 3 lines

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?

Signature · 1 line
Mathematics is the supreme nostalgia of our time.
maintainer
#5 lore raw

From: Matt Mackall <[email protected]>
Date: Tue, 26 Jul 2005 16:58:24 -0700

Quoted 7 lines · David S. Miller
Quoted 3 lines

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. :-)

#6 lore raw

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

Quoted 8 lines · David S. Miller

From: Matt Mackall <[email protected]>
Date: Tue, 26 Jul 2005 16:58:24 -0700

Quoted 5 lines · David S. Miller
Quoted 3 lines

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

Quoted 7 lines
Quoted 2 lines

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 [email protected]
# 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

drivers/net/Kconfig +1 -1
diff -r 75716ae25f9d -r 6cdd6f36d536 drivers/net/Kconfig
@@ -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.
net/core/utils.c +36 -1
diff -r 75716ae25f9d -r 6cdd6f36d536 net/core/utils.c
@@ -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);
net/ipv4/Makefile +1 -1
diff -r 75716ae25f9d -r 6cdd6f36d536 net/ipv4/Makefile
@@ -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 \
net/ipv4/utils.c deleted +0 -59

59 lines not on this page · raw message

Signature · 1 line
Mathematics is the supreme nostalgia of our time.
maintainer
#7 lore raw

From: Matt Mackall <[email protected]>
Date: Tue, 26 Jul 2005 19:36:37 -0700

Quoted 1 line

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

No, that would be Robert Olsson.

Quoted 1 line

Move in_aton from net/ipv4/utils.c to net/core/utils.c

Fair enough.

maintainer
#8 lore raw
In reply to Matt Mackall

From: Matt Mackall <[email protected]>
Date: Tue, 26 Jul 2005 19:36:37 -0700

Quoted 5 lines

# HG changeset patch
# User [email protected]
# 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.

#9 lore raw
Quoted 11 lines · David S. Miller

From: Matt Mackall <[email protected]>
Date: Tue, 26 Jul 2005 19:36:37 -0700

Quoted 5 lines

# HG changeset patch
# User [email protected]
# 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.

Signature · 1 line
Mathematics is the supreme nostalgia of our time.
maintainer
#10 lore raw

From: Matt Mackall <[email protected]>
Date: Wed, 27 Jul 2005 13:46:22 -0700

Quoted 4 lines

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.