diff options
author | Pawit Pornkitprasan <p.pawit@gmail.com> | 2013-03-03 09:36:50 +0700 |
---|---|---|
committer | Pawit Pornkitprasan <p.pawit@gmail.com> | 2013-03-03 09:37:08 +0700 |
commit | cbd6c4f48adc67ecbfcb9aa4a721b24a9ea26932 (patch) | |
tree | ef9c87ae4e9a14a19e2a0d95f1cb55c9e1e4edb5 /net | |
parent | 6c5dadef809982e05b16ba7cf309e7c642a1b56a (diff) | |
parent | 98bbf3565e3147a40c583ff97e2b5a98370c21a5 (diff) | |
download | kernel_samsung_aries-cbd6c4f48adc67ecbfcb9aa4a721b24a9ea26932.zip kernel_samsung_aries-cbd6c4f48adc67ecbfcb9aa4a721b24a9ea26932.tar.gz kernel_samsung_aries-cbd6c4f48adc67ecbfcb9aa4a721b24a9ea26932.tar.bz2 |
Merge 3.0.67
Change-Id: I269d39317336ca17a0d3a58932744e3d4a861c5d
Diffstat (limited to 'net')
-rw-r--r-- | net/bridge/br_stp_bpdu.c | 2 | ||||
-rw-r--r-- | net/ipv4/af_inet.c | 9 | ||||
-rw-r--r-- | net/ipv4/ping.c | 4 |
3 files changed, 11 insertions, 4 deletions
diff --git a/net/bridge/br_stp_bpdu.c b/net/bridge/br_stp_bpdu.c index 289646e..f26516a 100644 --- a/net/bridge/br_stp_bpdu.c +++ b/net/bridge/br_stp_bpdu.c @@ -16,6 +16,7 @@ #include <linux/etherdevice.h> #include <linux/llc.h> #include <linux/slab.h> +#include <linux/pkt_sched.h> #include <net/net_namespace.h> #include <net/llc.h> #include <net/llc_pdu.h> @@ -40,6 +41,7 @@ static void br_send_bpdu(struct net_bridge_port *p, skb->dev = p->dev; skb->protocol = htons(ETH_P_802_2); + skb->priority = TC_PRIO_CONTROL; skb_reserve(skb, LLC_RESERVE); memcpy(__skb_put(skb, length), data, length); diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c index 4d60f12..be3d56a 100644 --- a/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c @@ -239,8 +239,12 @@ EXPORT_SYMBOL(inet_listen); u32 inet_ehash_secret __read_mostly; EXPORT_SYMBOL(inet_ehash_secret); +u32 ipv6_hash_secret __read_mostly; +EXPORT_SYMBOL(ipv6_hash_secret); + /* - * inet_ehash_secret must be set exactly once + * inet_ehash_secret must be set exactly once, and to a non nul value + * ipv6_hash_secret must be set exactly once. */ void build_ehash_secret(void) { @@ -250,7 +254,8 @@ void build_ehash_secret(void) get_random_bytes(&rnd, sizeof(rnd)); } while (rnd == 0); - cmpxchg(&inet_ehash_secret, 0, rnd); + if (cmpxchg(&inet_ehash_secret, 0, rnd) == 0) + get_random_bytes(&ipv6_hash_secret, sizeof(ipv6_hash_secret)); } EXPORT_SYMBOL(build_ehash_secret); diff --git a/net/ipv4/ping.c b/net/ipv4/ping.c index 39b403f..0ae2cf1 100644 --- a/net/ipv4/ping.c +++ b/net/ipv4/ping.c @@ -320,8 +320,8 @@ void ping_err(struct sk_buff *skb, u32 info) struct iphdr *iph = (struct iphdr *)skb->data; struct icmphdr *icmph = (struct icmphdr *)(skb->data+(iph->ihl<<2)); struct inet_sock *inet_sock; - int type = icmph->type; - int code = icmph->code; + int type = icmp_hdr(skb)->type; + int code = icmp_hdr(skb)->code; struct net *net = dev_net(skb->dev); struct sock *sk; int harderr; |