diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-12-27 01:04:46 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-12-27 01:04:46 -0500 |
commit | c68cb23dde29fb107575656effa46f7b9440ac04 (patch) | |
tree | 081c24059c57d8b6b4e6b6781f741878069e5edc | |
parent | b50fd73b9d8ee1f999e8d625074872eb8fb88439 (diff) | |
parent | a6c05c3d064dbb83be88cba3189beb5db9d2dfc3 (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.txt | 5 | ||||
-rw-r--r-- | drivers/net/tun.c | 2 | ||||
-rw-r--r-- | drivers/net/veth.c | 2 | ||||
-rw-r--r-- | include/linux/Kbuild | 1 | ||||
-rw-r--r-- | include/linux/tc_act/Kbuild | 1 | ||||
-rw-r--r-- | include/linux/veth.h (renamed from include/net/veth.h) | 0 | ||||
-rw-r--r-- | include/net/netfilter/nf_conntrack.h | 1 | ||||
-rw-r--r-- | net/ipv4/ipconfig.c | 10 | ||||
-rw-r--r-- | net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c | 3 | ||||
-rw-r--r-- | net/mac80211/rx.c | 13 | ||||
-rw-r--r-- | net/mac80211/sta_info.c | 7 | ||||
-rw-r--r-- | net/netfilter/nf_conntrack_core.c | 5 |
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 | |||
153 | header-y += ultrasound.h | 153 | header-y += ultrasound.h |
154 | header-y += un.h | 154 | header-y += un.h |
155 | header-y += utime.h | 155 | header-y += utime.h |
156 | header-y += veth.h | ||
156 | header-y += video_decoder.h | 157 | header-y += video_decoder.h |
157 | header-y += video_encoder.h | 158 | header-y += video_encoder.h |
158 | header-y += videotext.h | 159 | header-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 | |||
2 | header-y += tc_ipt.h | 2 | header-y += tc_ipt.h |
3 | header-y += tc_mirred.h | 3 | header-y += tc_mirred.h |
4 | header-y += tc_pedit.h | 4 | header-y += tc_pedit.h |
5 | header-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 | ||
252 | extern int nf_conntrack_set_hashsize(const char *val, struct kernel_param *kp); | ||
252 | extern unsigned int nf_conntrack_htable_size; | 253 | extern unsigned int nf_conntrack_htable_size; |
253 | extern int nf_conntrack_checksum; | 254 | extern int nf_conntrack_checksum; |
254 | extern atomic_t nf_conntrack_count; | 255 | extern 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 | ||
422 | module_param_call(hashsize, nf_conntrack_set_hashsize, param_get_uint, | ||
423 | &nf_conntrack_htable_size, 0600); | ||
424 | |||
422 | MODULE_ALIAS("nf_conntrack-" __stringify(AF_INET)); | 425 | MODULE_ALIAS("nf_conntrack-" __stringify(AF_INET)); |
423 | MODULE_ALIAS("ip_conntrack"); | 426 | MODULE_ALIAS("ip_conntrack"); |
424 | MODULE_LICENSE("GPL"); | 427 | MODULE_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 | } |
1017 | EXPORT_SYMBOL_GPL(nf_ct_alloc_hashtable); | 1017 | EXPORT_SYMBOL_GPL(nf_ct_alloc_hashtable); |
1018 | 1018 | ||
1019 | int set_hashsize(const char *val, struct kernel_param *kp) | 1019 | int 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 | } |
1066 | EXPORT_SYMBOL_GPL(nf_conntrack_set_hashsize); | ||
1066 | 1067 | ||
1067 | module_param_call(hashsize, set_hashsize, param_get_uint, | 1068 | module_param_call(hashsize, nf_conntrack_set_hashsize, param_get_uint, |
1068 | &nf_conntrack_htable_size, 0600); | 1069 | &nf_conntrack_htable_size, 0600); |
1069 | 1070 | ||
1070 | int __init nf_conntrack_init(void) | 1071 | int __init nf_conntrack_init(void) |