aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-12-27 01:04:46 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-12-27 01:04:46 -0500
commitc68cb23dde29fb107575656effa46f7b9440ac04 (patch)
tree081c24059c57d8b6b4e6b6781f741878069e5edc
parentb50fd73b9d8ee1f999e8d625074872eb8fb88439 (diff)
parenta6c05c3d064dbb83be88cba3189beb5db9d2dfc3 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: [IPV4]: Fix ip command line processing. [VETH]: move veth.h to include/linux [NET] tc_nat: header install [TUNTAP]: Fix wrong debug message. [NETFILTER]: nf_conntrack_ipv4: fix module parameter compatibility mac80211: warn when receiving frames with unaligned data mac80211: round station cleanup timer
-rw-r--r--Documentation/nfsroot.txt5
-rw-r--r--drivers/net/tun.c2
-rw-r--r--drivers/net/veth.c2
-rw-r--r--include/linux/Kbuild1
-rw-r--r--include/linux/tc_act/Kbuild1
-rw-r--r--include/linux/veth.h (renamed from include/net/veth.h)0
-rw-r--r--include/net/netfilter/nf_conntrack.h1
-rw-r--r--net/ipv4/ipconfig.c10
-rw-r--r--net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c3
-rw-r--r--net/mac80211/rx.c13
-rw-r--r--net/mac80211/sta_info.c7
-rw-r--r--net/netfilter/nf_conntrack_core.c5
12 files changed, 34 insertions, 16 deletions
diff --git a/Documentation/nfsroot.txt b/Documentation/nfsroot.txt
index 9b956a969362..c86dd38e2281 100644
--- a/Documentation/nfsroot.txt
+++ b/Documentation/nfsroot.txt
@@ -97,10 +97,6 @@ ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>
97 autoconfiguration will take place. The most common way to use this 97 autoconfiguration will take place. The most common way to use this
98 is "ip=dhcp". 98 is "ip=dhcp".
99 99
100 Note that "ip=off" is not the same thing as "ip=::::::off", because in
101 the latter autoconfiguration will take place if any of DHCP, BOOTP or RARP
102 are compiled in the kernel.
103
104 <client-ip> IP address of the client. 100 <client-ip> IP address of the client.
105 101
106 Default: Determined using autoconfiguration. 102 Default: Determined using autoconfiguration.
@@ -150,6 +146,7 @@ ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>
150 146
151 off or none: don't use autoconfiguration 147 off or none: don't use autoconfiguration
152 on or any: use any protocol available in the kernel 148 on or any: use any protocol available in the kernel
149 (default)
153 dhcp: use DHCP 150 dhcp: use DHCP
154 bootp: use BOOTP 151 bootp: use BOOTP
155 rarp: use RARP 152 rarp: use RARP
diff --git a/drivers/net/tun.c b/drivers/net/tun.c
index 1f7644695976..f8b8c71187a0 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@ -610,7 +610,7 @@ static int tun_chr_ioctl(struct inode *inode, struct file *file,
610 tun->flags &= ~TUN_PERSIST; 610 tun->flags &= ~TUN_PERSIST;
611 611
612 DBG(KERN_INFO "%s: persist %s\n", 612 DBG(KERN_INFO "%s: persist %s\n",
613 tun->dev->name, arg ? "disabled" : "enabled"); 613 tun->dev->name, arg ? "enabled" : "disabled");
614 break; 614 break;
615 615
616 case TUNSETOWNER: 616 case TUNSETOWNER:
diff --git a/drivers/net/veth.c b/drivers/net/veth.c
index fdd1e034569d..43af9e9b2652 100644
--- a/drivers/net/veth.c
+++ b/drivers/net/veth.c
@@ -15,7 +15,7 @@
15 15
16#include <net/dst.h> 16#include <net/dst.h>
17#include <net/xfrm.h> 17#include <net/xfrm.h>
18#include <net/veth.h> 18#include <linux/veth.h>
19 19
20#define DRV_NAME "veth" 20#define DRV_NAME "veth"
21#define DRV_VERSION "1.0" 21#define DRV_VERSION "1.0"
diff --git a/include/linux/Kbuild b/include/linux/Kbuild
index 9abf5a806c15..f30fa92a44a1 100644
--- a/include/linux/Kbuild
+++ b/include/linux/Kbuild
@@ -153,6 +153,7 @@ header-y += toshiba.h
153header-y += ultrasound.h 153header-y += ultrasound.h
154header-y += un.h 154header-y += un.h
155header-y += utime.h 155header-y += utime.h
156header-y += veth.h
156header-y += video_decoder.h 157header-y += video_decoder.h
157header-y += video_encoder.h 158header-y += video_encoder.h
158header-y += videotext.h 159header-y += videotext.h
diff --git a/include/linux/tc_act/Kbuild b/include/linux/tc_act/Kbuild
index 78dfbac36375..6dac0d7365cc 100644
--- a/include/linux/tc_act/Kbuild
+++ b/include/linux/tc_act/Kbuild
@@ -2,3 +2,4 @@ header-y += tc_gact.h
2header-y += tc_ipt.h 2header-y += tc_ipt.h
3header-y += tc_mirred.h 3header-y += tc_mirred.h
4header-y += tc_pedit.h 4header-y += tc_pedit.h
5header-y += tc_nat.h
diff --git a/include/net/veth.h b/include/linux/veth.h
index 3354c1eb424e..3354c1eb424e 100644
--- a/include/net/veth.h
+++ b/include/linux/veth.h
diff --git a/include/net/netfilter/nf_conntrack.h b/include/net/netfilter/nf_conntrack.h
index 90fb66d99d0c..4ac5ab187c2a 100644
--- a/include/net/netfilter/nf_conntrack.h
+++ b/include/net/netfilter/nf_conntrack.h
@@ -249,6 +249,7 @@ static inline int nf_ct_is_untracked(const struct sk_buff *skb)
249 return (skb->nfct == &nf_conntrack_untracked.ct_general); 249 return (skb->nfct == &nf_conntrack_untracked.ct_general);
250} 250}
251 251
252extern int nf_conntrack_set_hashsize(const char *val, struct kernel_param *kp);
252extern unsigned int nf_conntrack_htable_size; 253extern unsigned int nf_conntrack_htable_size;
253extern int nf_conntrack_checksum; 254extern int nf_conntrack_checksum;
254extern atomic_t nf_conntrack_count; 255extern atomic_t nf_conntrack_count;
diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
index 96400b0bd08a..420f56ad59f8 100644
--- a/net/ipv4/ipconfig.c
+++ b/net/ipv4/ipconfig.c
@@ -1403,6 +1403,10 @@ static int __init ic_proto_name(char *name)
1403 if (!strcmp(name, "on") || !strcmp(name, "any")) { 1403 if (!strcmp(name, "on") || !strcmp(name, "any")) {
1404 return 1; 1404 return 1;
1405 } 1405 }
1406 if (!strcmp(name, "off") || !strcmp(name, "none")) {
1407 ic_enable = 0;
1408 return 1;
1409 }
1406#ifdef CONFIG_IP_PNP_DHCP 1410#ifdef CONFIG_IP_PNP_DHCP
1407 else if (!strcmp(name, "dhcp")) { 1411 else if (!strcmp(name, "dhcp")) {
1408 ic_proto_enabled &= ~IC_RARP; 1412 ic_proto_enabled &= ~IC_RARP;
@@ -1437,12 +1441,6 @@ static int __init ip_auto_config_setup(char *addrs)
1437 1441
1438 ic_set_manually = 1; 1442 ic_set_manually = 1;
1439 1443
1440 ic_enable = (*addrs &&
1441 (strcmp(addrs, "off") != 0) &&
1442 (strcmp(addrs, "none") != 0));
1443 if (!ic_enable)
1444 return 1;
1445
1446 if (ic_proto_name(addrs)) 1444 if (ic_proto_name(addrs))
1447 return 1; 1445 return 1;
1448 1446
diff --git a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
index 831e9b29806d..910dae732a0f 100644
--- a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
+++ b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
@@ -419,6 +419,9 @@ struct nf_conntrack_l3proto nf_conntrack_l3proto_ipv4 __read_mostly = {
419 .me = THIS_MODULE, 419 .me = THIS_MODULE,
420}; 420};
421 421
422module_param_call(hashsize, nf_conntrack_set_hashsize, param_get_uint,
423 &nf_conntrack_htable_size, 0600);
424
422MODULE_ALIAS("nf_conntrack-" __stringify(AF_INET)); 425MODULE_ALIAS("nf_conntrack-" __stringify(AF_INET));
423MODULE_ALIAS("ip_conntrack"); 426MODULE_ALIAS("ip_conntrack");
424MODULE_LICENSE("GPL"); 427MODULE_LICENSE("GPL");
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 00f908d9275e..a7263fc476bd 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -1443,6 +1443,7 @@ void __ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb,
1443 struct ieee80211_sub_if_data *prev = NULL; 1443 struct ieee80211_sub_if_data *prev = NULL;
1444 struct sk_buff *skb_new; 1444 struct sk_buff *skb_new;
1445 u8 *bssid; 1445 u8 *bssid;
1446 int hdrlen;
1446 1447
1447 /* 1448 /*
1448 * key references and virtual interfaces are protected using RCU 1449 * key references and virtual interfaces are protected using RCU
@@ -1472,6 +1473,18 @@ void __ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb,
1472 rx.fc = le16_to_cpu(hdr->frame_control); 1473 rx.fc = le16_to_cpu(hdr->frame_control);
1473 type = rx.fc & IEEE80211_FCTL_FTYPE; 1474 type = rx.fc & IEEE80211_FCTL_FTYPE;
1474 1475
1476 /*
1477 * Drivers are required to align the payload data to a four-byte
1478 * boundary, so the last two bits of the address where it starts
1479 * may not be set. The header is required to be directly before
1480 * the payload data, padding like atheros hardware adds which is
1481 * inbetween the 802.11 header and the payload is not supported,
1482 * the driver is required to move the 802.11 header further back
1483 * in that case.
1484 */
1485 hdrlen = ieee80211_get_hdrlen(rx.fc);
1486 WARN_ON_ONCE(((unsigned long)(skb->data + hdrlen)) & 3);
1487
1475 if (type == IEEE80211_FTYPE_DATA || type == IEEE80211_FTYPE_MGMT) 1488 if (type == IEEE80211_FTYPE_DATA || type == IEEE80211_FTYPE_MGMT)
1476 local->dot11ReceivedFragmentCount++; 1489 local->dot11ReceivedFragmentCount++;
1477 1490
diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
index e8491554a5dc..cfd8ee9adad0 100644
--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -14,6 +14,7 @@
14#include <linux/slab.h> 14#include <linux/slab.h>
15#include <linux/skbuff.h> 15#include <linux/skbuff.h>
16#include <linux/if_arp.h> 16#include <linux/if_arp.h>
17#include <linux/timer.h>
17 18
18#include <net/mac80211.h> 19#include <net/mac80211.h>
19#include "ieee80211_i.h" 20#include "ieee80211_i.h"
@@ -306,7 +307,8 @@ static void sta_info_cleanup(unsigned long data)
306 } 307 }
307 read_unlock_bh(&local->sta_lock); 308 read_unlock_bh(&local->sta_lock);
308 309
309 local->sta_cleanup.expires = jiffies + STA_INFO_CLEANUP_INTERVAL; 310 local->sta_cleanup.expires =
311 round_jiffies(jiffies + STA_INFO_CLEANUP_INTERVAL);
310 add_timer(&local->sta_cleanup); 312 add_timer(&local->sta_cleanup);
311} 313}
312 314
@@ -345,7 +347,8 @@ void sta_info_init(struct ieee80211_local *local)
345 INIT_LIST_HEAD(&local->sta_list); 347 INIT_LIST_HEAD(&local->sta_list);
346 348
347 init_timer(&local->sta_cleanup); 349 init_timer(&local->sta_cleanup);
348 local->sta_cleanup.expires = jiffies + STA_INFO_CLEANUP_INTERVAL; 350 local->sta_cleanup.expires =
351 round_jiffies(jiffies + STA_INFO_CLEANUP_INTERVAL);
349 local->sta_cleanup.data = (unsigned long) local; 352 local->sta_cleanup.data = (unsigned long) local;
350 local->sta_cleanup.function = sta_info_cleanup; 353 local->sta_cleanup.function = sta_info_cleanup;
351 354
diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
index 000c2fb462d0..a4d5cdeb0110 100644
--- a/net/netfilter/nf_conntrack_core.c
+++ b/net/netfilter/nf_conntrack_core.c
@@ -1016,7 +1016,7 @@ struct hlist_head *nf_ct_alloc_hashtable(int *sizep, int *vmalloced)
1016} 1016}
1017EXPORT_SYMBOL_GPL(nf_ct_alloc_hashtable); 1017EXPORT_SYMBOL_GPL(nf_ct_alloc_hashtable);
1018 1018
1019int set_hashsize(const char *val, struct kernel_param *kp) 1019int nf_conntrack_set_hashsize(const char *val, struct kernel_param *kp)
1020{ 1020{
1021 int i, bucket, hashsize, vmalloced; 1021 int i, bucket, hashsize, vmalloced;
1022 int old_vmalloced, old_size; 1022 int old_vmalloced, old_size;
@@ -1063,8 +1063,9 @@ int set_hashsize(const char *val, struct kernel_param *kp)
1063 nf_ct_free_hashtable(old_hash, old_vmalloced, old_size); 1063 nf_ct_free_hashtable(old_hash, old_vmalloced, old_size);
1064 return 0; 1064 return 0;
1065} 1065}
1066EXPORT_SYMBOL_GPL(nf_conntrack_set_hashsize);
1066 1067
1067module_param_call(hashsize, set_hashsize, param_get_uint, 1068module_param_call(hashsize, nf_conntrack_set_hashsize, param_get_uint,
1068 &nf_conntrack_htable_size, 0600); 1069 &nf_conntrack_htable_size, 0600);
1069 1070
1070int __init nf_conntrack_init(void) 1071int __init nf_conntrack_init(void)