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

+34 -16
+1 -4
Documentation/nfsroot.txt
··· 97 97 autoconfiguration will take place. The most common way to use this 98 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 100 <client-ip> IP address of the client. 105 101 106 102 Default: Determined using autoconfiguration. ··· 146 150 147 151 off or none: don't use autoconfiguration 148 152 on or any: use any protocol available in the kernel 153 + (default) 149 154 dhcp: use DHCP 150 155 bootp: use BOOTP 151 156 rarp: use RARP
+1 -1
drivers/net/tun.c
··· 610 610 tun->flags &= ~TUN_PERSIST; 611 611 612 612 DBG(KERN_INFO "%s: persist %s\n", 613 - tun->dev->name, arg ? "disabled" : "enabled"); 613 + tun->dev->name, arg ? "enabled" : "disabled"); 614 614 break; 615 615 616 616 case TUNSETOWNER:
+1 -1
drivers/net/veth.c
··· 15 15 16 16 #include <net/dst.h> 17 17 #include <net/xfrm.h> 18 - #include <net/veth.h> 18 + #include <linux/veth.h> 19 19 20 20 #define DRV_NAME "veth" 21 21 #define DRV_VERSION "1.0"
+1
include/linux/Kbuild
··· 153 153 header-y += ultrasound.h 154 154 header-y += un.h 155 155 header-y += utime.h 156 + header-y += veth.h 156 157 header-y += video_decoder.h 157 158 header-y += video_encoder.h 158 159 header-y += videotext.h
+1
include/linux/tc_act/Kbuild
··· 2 2 header-y += tc_ipt.h 3 3 header-y += tc_mirred.h 4 4 header-y += tc_pedit.h 5 + header-y += tc_nat.h
+1
include/net/netfilter/nf_conntrack.h
··· 249 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 253 extern unsigned int nf_conntrack_htable_size; 253 254 extern int nf_conntrack_checksum; 254 255 extern atomic_t nf_conntrack_count;
include/net/veth.h include/linux/veth.h
+4 -6
net/ipv4/ipconfig.c
··· 1403 1403 if (!strcmp(name, "on") || !strcmp(name, "any")) { 1404 1404 return 1; 1405 1405 } 1406 + if (!strcmp(name, "off") || !strcmp(name, "none")) { 1407 + ic_enable = 0; 1408 + return 1; 1409 + } 1406 1410 #ifdef CONFIG_IP_PNP_DHCP 1407 1411 else if (!strcmp(name, "dhcp")) { 1408 1412 ic_proto_enabled &= ~IC_RARP; ··· 1440 1436 int num = 0; 1441 1437 1442 1438 ic_set_manually = 1; 1443 - 1444 - ic_enable = (*addrs && 1445 - (strcmp(addrs, "off") != 0) && 1446 - (strcmp(addrs, "none") != 0)); 1447 - if (!ic_enable) 1448 - return 1; 1449 1439 1450 1440 if (ic_proto_name(addrs)) 1451 1441 return 1;
+3
net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
··· 419 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 425 MODULE_ALIAS("nf_conntrack-" __stringify(AF_INET)); 423 426 MODULE_ALIAS("ip_conntrack"); 424 427 MODULE_LICENSE("GPL");
+13
net/mac80211/rx.c
··· 1443 1443 struct ieee80211_sub_if_data *prev = NULL; 1444 1444 struct sk_buff *skb_new; 1445 1445 u8 *bssid; 1446 + int hdrlen; 1446 1447 1447 1448 /* 1448 1449 * key references and virtual interfaces are protected using RCU ··· 1472 1471 rx.u.rx.status = status; 1473 1472 rx.fc = le16_to_cpu(hdr->frame_control); 1474 1473 type = rx.fc & IEEE80211_FCTL_FTYPE; 1474 + 1475 + /* 1476 + * Drivers are required to align the payload data to a four-byte 1477 + * boundary, so the last two bits of the address where it starts 1478 + * may not be set. The header is required to be directly before 1479 + * the payload data, padding like atheros hardware adds which is 1480 + * inbetween the 802.11 header and the payload is not supported, 1481 + * the driver is required to move the 802.11 header further back 1482 + * in that case. 1483 + */ 1484 + hdrlen = ieee80211_get_hdrlen(rx.fc); 1485 + WARN_ON_ONCE(((unsigned long)(skb->data + hdrlen)) & 3); 1475 1486 1476 1487 if (type == IEEE80211_FTYPE_DATA || type == IEEE80211_FTYPE_MGMT) 1477 1488 local->dot11ReceivedFragmentCount++;
+5 -2
net/mac80211/sta_info.c
··· 14 14 #include <linux/slab.h> 15 15 #include <linux/skbuff.h> 16 16 #include <linux/if_arp.h> 17 + #include <linux/timer.h> 17 18 18 19 #include <net/mac80211.h> 19 20 #include "ieee80211_i.h" ··· 307 306 } 308 307 read_unlock_bh(&local->sta_lock); 309 308 310 - local->sta_cleanup.expires = jiffies + STA_INFO_CLEANUP_INTERVAL; 309 + local->sta_cleanup.expires = 310 + round_jiffies(jiffies + STA_INFO_CLEANUP_INTERVAL); 311 311 add_timer(&local->sta_cleanup); 312 312 } 313 313 ··· 347 345 INIT_LIST_HEAD(&local->sta_list); 348 346 349 347 init_timer(&local->sta_cleanup); 350 - local->sta_cleanup.expires = jiffies + STA_INFO_CLEANUP_INTERVAL; 348 + local->sta_cleanup.expires = 349 + round_jiffies(jiffies + STA_INFO_CLEANUP_INTERVAL); 351 350 local->sta_cleanup.data = (unsigned long) local; 352 351 local->sta_cleanup.function = sta_info_cleanup; 353 352
+3 -2
net/netfilter/nf_conntrack_core.c
··· 1016 1016 } 1017 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 1021 int i, bucket, hashsize, vmalloced; 1022 1022 int old_vmalloced, old_size; ··· 1063 1063 nf_ct_free_hashtable(old_hash, old_vmalloced, old_size); 1064 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 1069 &nf_conntrack_htable_size, 0600); 1069 1070 1070 1071 int __init nf_conntrack_init(void)