Преглед на файлове

Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

Linus Torvalds преди 20 години
родител
ревизия
839c5d2511
променени са 7 файла, в които са добавени 64 реда и са изтрити 89 реда
  1. 18 20
      drivers/net/Kconfig
  2. 7 6
      net/core/sock.c
  3. 36 1
      net/core/utils.c
  4. 1 1
      net/ipv4/Kconfig
  5. 1 1
      net/ipv4/Makefile
  6. 1 1
      net/ipv4/netfilter/ip_conntrack_core.c
  7. 0 59
      net/ipv4/utils.c

+ 18 - 20
drivers/net/Kconfig

@@ -23,9 +23,12 @@ config NETDEVICES
 
 
 	  If unsure, say Y.
 	  If unsure, say Y.
 
 
+# All the following symbols are dependent on NETDEVICES - do not repeat
+# that for each of the symbols.
+if NETDEVICES
+
 config DUMMY
 config DUMMY
 	tristate "Dummy net driver support"
 	tristate "Dummy net driver support"
-	depends on NETDEVICES
 	---help---
 	---help---
 	  This is essentially a bit-bucket device (i.e. traffic you send to
 	  This is essentially a bit-bucket device (i.e. traffic you send to
 	  this device is consigned into oblivion) with a configurable IP
 	  this device is consigned into oblivion) with a configurable IP
@@ -45,7 +48,6 @@ config DUMMY
 
 
 config BONDING
 config BONDING
 	tristate "Bonding driver support"
 	tristate "Bonding driver support"
-	depends on NETDEVICES
 	depends on INET
 	depends on INET
 	---help---
 	---help---
 	  Say 'Y' or 'M' if you wish to be able to 'bond' multiple Ethernet
 	  Say 'Y' or 'M' if you wish to be able to 'bond' multiple Ethernet
@@ -63,7 +65,6 @@ config BONDING
 
 
 config EQUALIZER
 config EQUALIZER
 	tristate "EQL (serial line load balancing) support"
 	tristate "EQL (serial line load balancing) support"
-	depends on NETDEVICES
 	---help---
 	---help---
 	  If you have two serial connections to some other computer (this
 	  If you have two serial connections to some other computer (this
 	  usually requires two modems and two telephone lines) and you use
 	  usually requires two modems and two telephone lines) and you use
@@ -83,7 +84,6 @@ config EQUALIZER
 
 
 config TUN
 config TUN
 	tristate "Universal TUN/TAP device driver support"
 	tristate "Universal TUN/TAP device driver support"
-	depends on NETDEVICES
 	select CRC32
 	select CRC32
 	---help---
 	---help---
 	  TUN/TAP provides packet reception and transmission for user space
 	  TUN/TAP provides packet reception and transmission for user space
@@ -107,7 +107,7 @@ config TUN
 
 
 config NET_SB1000
 config NET_SB1000
 	tristate "General Instruments Surfboard 1000"
 	tristate "General Instruments Surfboard 1000"
-	depends on NETDEVICES && PNP
+	depends on PNP
 	---help---
 	---help---
 	  This is a driver for the General Instrument (also known as
 	  This is a driver for the General Instrument (also known as
 	  NextLevel) SURFboard 1000 internal
 	  NextLevel) SURFboard 1000 internal
@@ -129,16 +129,14 @@ config NET_SB1000
 
 
 	  If you don't have this card, of course say N.
 	  If you don't have this card, of course say N.
 
 
-if NETDEVICES
 	source "drivers/net/arcnet/Kconfig"
 	source "drivers/net/arcnet/Kconfig"
-endif
 
 
 #
 #
 #	Ethernet
 #	Ethernet
 #
 #
 
 
 menu "Ethernet (10 or 100Mbit)"
 menu "Ethernet (10 or 100Mbit)"
-	depends on NETDEVICES && !UML
+	depends on !UML
 
 
 config NET_ETHERNET
 config NET_ETHERNET
 	bool "Ethernet (10 or 100Mbit)"
 	bool "Ethernet (10 or 100Mbit)"
@@ -1137,7 +1135,7 @@ config IBMLANA
 
 
 config IBMVETH
 config IBMVETH
 	tristate "IBM LAN Virtual Ethernet support"
 	tristate "IBM LAN Virtual Ethernet support"
-	depends on NETDEVICES && NET_ETHERNET && PPC_PSERIES
+	depends on NET_ETHERNET && PPC_PSERIES
 	---help---
 	---help---
 	  This driver supports virtual ethernet adapters on newer IBM iSeries
 	  This driver supports virtual ethernet adapters on newer IBM iSeries
 	  and pSeries systems.
 	  and pSeries systems.
@@ -1760,7 +1758,7 @@ endmenu
 #
 #
 
 
 menu "Ethernet (1000 Mbit)"
 menu "Ethernet (1000 Mbit)"
-	depends on NETDEVICES && !UML
+	depends on !UML
 
 
 config ACENIC
 config ACENIC
 	tristate "Alteon AceNIC/3Com 3C985/NetGear GA620 Gigabit support"
 	tristate "Alteon AceNIC/3Com 3C985/NetGear GA620 Gigabit support"
@@ -2091,7 +2089,7 @@ endmenu
 #
 #
 
 
 menu "Ethernet (10000 Mbit)"
 menu "Ethernet (10000 Mbit)"
-	depends on NETDEVICES && !UML
+	depends on !UML
 
 
 config IXGB
 config IXGB
 	tristate "Intel(R) PRO/10GbE support"
 	tristate "Intel(R) PRO/10GbE support"
@@ -2186,11 +2184,11 @@ source "drivers/s390/net/Kconfig"
 
 
 config ISERIES_VETH
 config ISERIES_VETH
 	tristate "iSeries Virtual Ethernet driver support"
 	tristate "iSeries Virtual Ethernet driver support"
-	depends on NETDEVICES && PPC_ISERIES
+	depends on PPC_ISERIES
 
 
 config FDDI
 config FDDI
 	bool "FDDI driver support"
 	bool "FDDI driver support"
-	depends on NETDEVICES && (PCI || EISA)
+	depends on (PCI || EISA)
 	help
 	help
 	  Fiber Distributed Data Interface is a high speed local area network
 	  Fiber Distributed Data Interface is a high speed local area network
 	  design; essentially a replacement for high speed Ethernet. FDDI can
 	  design; essentially a replacement for high speed Ethernet. FDDI can
@@ -2239,7 +2237,7 @@ config SKFP
 
 
 config HIPPI
 config HIPPI
 	bool "HIPPI driver support (EXPERIMENTAL)"
 	bool "HIPPI driver support (EXPERIMENTAL)"
-	depends on NETDEVICES && EXPERIMENTAL && INET && PCI
+	depends on EXPERIMENTAL && INET && PCI
 	help
 	help
 	  HIgh Performance Parallel Interface (HIPPI) is a 800Mbit/sec and
 	  HIgh Performance Parallel Interface (HIPPI) is a 800Mbit/sec and
 	  1600Mbit/sec dual-simplex switched or point-to-point network. HIPPI
 	  1600Mbit/sec dual-simplex switched or point-to-point network. HIPPI
@@ -2271,7 +2269,7 @@ config ROADRUNNER_LARGE_RINGS
 
 
 config PLIP
 config PLIP
 	tristate "PLIP (parallel port) support"
 	tristate "PLIP (parallel port) support"
-	depends on NETDEVICES && PARPORT
+	depends on PARPORT
 	---help---
 	---help---
 	  PLIP (Parallel Line Internet Protocol) is used to create a
 	  PLIP (Parallel Line Internet Protocol) is used to create a
 	  reasonably fast mini network consisting of two (or, rarely, more)
 	  reasonably fast mini network consisting of two (or, rarely, more)
@@ -2307,7 +2305,6 @@ config PLIP
 
 
 config PPP
 config PPP
 	tristate "PPP (point-to-point protocol) support"
 	tristate "PPP (point-to-point protocol) support"
-	depends on NETDEVICES
 	---help---
 	---help---
 	  PPP (Point to Point Protocol) is a newer and better SLIP.  It serves
 	  PPP (Point to Point Protocol) is a newer and better SLIP.  It serves
 	  the same purpose: sending Internet traffic over telephone (and other
 	  the same purpose: sending Internet traffic over telephone (and other
@@ -2443,7 +2440,6 @@ config PPPOATM
 
 
 config SLIP
 config SLIP
 	tristate "SLIP (serial line) support"
 	tristate "SLIP (serial line) support"
-	depends on NETDEVICES
 	---help---
 	---help---
 	  Say Y if you intend to use SLIP or CSLIP (compressed SLIP) to
 	  Say Y if you intend to use SLIP or CSLIP (compressed SLIP) to
 	  connect to your Internet service provider or to connect to some
 	  connect to your Internet service provider or to connect to some
@@ -2510,7 +2506,7 @@ config SLIP_MODE_SLIP6
 
 
 config NET_FC
 config NET_FC
 	bool "Fibre Channel driver support"
 	bool "Fibre Channel driver support"
-	depends on NETDEVICES && SCSI && PCI
+	depends on SCSI && PCI
 	help
 	help
 	  Fibre Channel is a high speed serial protocol mainly used to connect
 	  Fibre Channel is a high speed serial protocol mainly used to connect
 	  large storage devices to the computer; it is compatible with and
 	  large storage devices to the computer; it is compatible with and
@@ -2523,7 +2519,7 @@ config NET_FC
 
 
 config SHAPER
 config SHAPER
 	tristate "Traffic Shaper (EXPERIMENTAL)"
 	tristate "Traffic Shaper (EXPERIMENTAL)"
-	depends on NETDEVICES && EXPERIMENTAL
+	depends on EXPERIMENTAL
 	---help---
 	---help---
 	  The traffic shaper is a virtual network device that allows you to
 	  The traffic shaper is a virtual network device that allows you to
 	  limit the rate of outgoing data flow over some other network device.
 	  limit the rate of outgoing data flow over some other network device.
@@ -2544,11 +2540,13 @@ config SHAPER
 
 
 config NETCONSOLE
 config NETCONSOLE
 	tristate "Network console logging support (EXPERIMENTAL)"
 	tristate "Network console logging support (EXPERIMENTAL)"
-	depends on NETDEVICES && INET && EXPERIMENTAL
+	depends on EXPERIMENTAL
 	---help---
 	---help---
 	If you want to log kernel messages over the network, enable this.
 	If you want to log kernel messages over the network, enable this.
 	See <file:Documentation/networking/netconsole.txt> for details.
 	See <file:Documentation/networking/netconsole.txt> for details.
 
 
+endif #NETDEVICES
+
 config NETPOLL
 config NETPOLL
 	def_bool NETCONSOLE
 	def_bool NETCONSOLE
 
 

+ 7 - 6
net/core/sock.c

@@ -206,13 +206,14 @@ int sock_setsockopt(struct socket *sock, int level, int optname,
 	 */
 	 */
 
 
 #ifdef SO_DONTLINGER		/* Compatibility item... */
 #ifdef SO_DONTLINGER		/* Compatibility item... */
-	switch (optname) {
-		case SO_DONTLINGER:
-			sock_reset_flag(sk, SOCK_LINGER);
-			return 0;
+	if (optname == SO_DONTLINGER) {
+		lock_sock(sk);
+		sock_reset_flag(sk, SOCK_LINGER);
+		release_sock(sk);
+		return 0;
 	}
 	}
-#endif	
-		
+#endif
+	
   	if(optlen<sizeof(int))
   	if(optlen<sizeof(int))
   		return(-EINVAL);
   		return(-EINVAL);
   	
   	

+ 36 - 1
net/core/utils.c

@@ -23,10 +23,10 @@
 #include <linux/percpu.h>
 #include <linux/percpu.h>
 #include <linux/init.h>
 #include <linux/init.h>
 
 
+#include <asm/byteorder.h>
 #include <asm/system.h>
 #include <asm/system.h>
 #include <asm/uaccess.h>
 #include <asm/uaccess.h>
 
 
-
 /*
 /*
   This is a maximally equidistributed combined Tausworthe generator
   This is a maximally equidistributed combined Tausworthe generator
   based on code from GNU Scientific Library 1.5 (30 Jun 2004)
   based on code from GNU Scientific Library 1.5 (30 Jun 2004)
@@ -153,3 +153,38 @@ int net_ratelimit(void)
 EXPORT_SYMBOL(net_random);
 EXPORT_SYMBOL(net_random);
 EXPORT_SYMBOL(net_ratelimit);
 EXPORT_SYMBOL(net_ratelimit);
 EXPORT_SYMBOL(net_srandom);
 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);

+ 1 - 1
net/ipv4/Kconfig

@@ -124,7 +124,7 @@ config IP_ROUTE_MULTIPATH
 
 
 config IP_ROUTE_MULTIPATH_CACHED
 config IP_ROUTE_MULTIPATH_CACHED
 	bool "IP: equal cost multipath with caching support (EXPERIMENTAL)"
 	bool "IP: equal cost multipath with caching support (EXPERIMENTAL)"
-	depends on: IP_ROUTE_MULTIPATH
+	depends on IP_ROUTE_MULTIPATH
 	help
 	help
 	  Normally, equal cost multipath routing is not supported by the
 	  Normally, equal cost multipath routing is not supported by the
 	  routing cache. If you say Y here, alternative routes are cached
 	  routing cache. If you say Y here, alternative routes are cached

+ 1 - 1
net/ipv4/Makefile

@@ -2,7 +2,7 @@
 # Makefile for the Linux TCP/IP (INET) layer.
 # 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_input.o ip_fragment.o ip_forward.o ip_options.o \
 	     ip_output.o ip_sockglue.o \
 	     ip_output.o ip_sockglue.o \
 	     tcp.o tcp_input.o tcp_output.o tcp_timer.o tcp_ipv4.o \
 	     tcp.o tcp_input.o tcp_output.o tcp_timer.o tcp_ipv4.o \

+ 1 - 1
net/ipv4/netfilter/ip_conntrack_core.c

@@ -510,7 +510,7 @@ init_conntrack(const struct ip_conntrack_tuple *tuple,
 		/* Welcome, Mr. Bond.  We've been expecting you... */
 		/* Welcome, Mr. Bond.  We've been expecting you... */
 		__set_bit(IPS_EXPECTED_BIT, &conntrack->status);
 		__set_bit(IPS_EXPECTED_BIT, &conntrack->status);
 		conntrack->master = exp->master;
 		conntrack->master = exp->master;
-#if CONFIG_IP_NF_CONNTRACK_MARK
+#ifdef CONFIG_IP_NF_CONNTRACK_MARK
 		conntrack->mark = exp->master->mark;
 		conntrack->mark = exp->master->mark;
 #endif
 #endif
 		nf_conntrack_get(&conntrack->master->ct_general);
 		nf_conntrack_get(&conntrack->master->ct_general);

+ 0 - 59
net/ipv4/utils.c

@@ -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);