diff options
| author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-03-07 22:05:34 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-03-07 22:05:34 -0500 |
| commit | eee8abe5de9cbd936b51db292c8d3c406b0e79e7 (patch) | |
| tree | eec36145a50ab08e85f45107b9ed15a1bc83535f /net/ipv6 | |
| parent | 06aa5b4aae223ea4d623dc68e85466174bb92c84 (diff) | |
| parent | de79059ecd7cd650f3788ece978a64586921d1f1 (diff) | |
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
[BRIDGE]: adding new device to bridge should enable if up
[IPV6]: Do not set IF_READY if device is down
[IPSEC]: xfrm audit hook misplaced in pfkey_delete and xfrm_del_sa
[IPSEC]: Add xfrm policy change auditing to pfkey_spdget
[IPSEC]: xfrm_policy delete security check misplaced
[CONNECTOR]: Bugfix for cn_call_callback()
[DCCP]: Revert patch which disables bidirectional mode
[IPV6]: Handle np->opt being NULL in ipv6_getsockopt_sticky().
[UDP]: Reread uh pointer after pskb_trim
[NETFILTER]: nfnetlink_log: fix crash on bridged packet
[NETFILTER]: nfnetlink_log: zero-terminate prefix
[NETFILTER]: nf_conntrack_ipv6: fix incorrect classification of IPv6 fragments as ESTABLISHED
Diffstat (limited to 'net/ipv6')
| -rw-r--r-- | net/ipv6/addrconf.c | 4 | ||||
| -rw-r--r-- | net/ipv6/ipv6_sockglue.c | 10 | ||||
| -rw-r--r-- | net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c | 1 |
3 files changed, 8 insertions, 7 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index e16f1bba5dff..a7fee6b27320 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c | |||
| @@ -342,10 +342,6 @@ static struct inet6_dev * ipv6_add_dev(struct net_device *dev) | |||
| 342 | } | 342 | } |
| 343 | #endif | 343 | #endif |
| 344 | 344 | ||
| 345 | if (netif_carrier_ok(dev)) | ||
| 346 | ndev->if_flags |= IF_READY; | ||
| 347 | |||
| 348 | |||
| 349 | ipv6_mc_init_dev(ndev); | 345 | ipv6_mc_init_dev(ndev); |
| 350 | ndev->tstamp = jiffies; | 346 | ndev->tstamp = jiffies; |
| 351 | #ifdef CONFIG_SYSCTL | 347 | #ifdef CONFIG_SYSCTL |
diff --git a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c index 286c86735aed..4e0561a082d0 100644 --- a/net/ipv6/ipv6_sockglue.c +++ b/net/ipv6/ipv6_sockglue.c | |||
| @@ -795,11 +795,15 @@ int compat_ipv6_setsockopt(struct sock *sk, int level, int optname, | |||
| 795 | EXPORT_SYMBOL(compat_ipv6_setsockopt); | 795 | EXPORT_SYMBOL(compat_ipv6_setsockopt); |
| 796 | #endif | 796 | #endif |
| 797 | 797 | ||
| 798 | static int ipv6_getsockopt_sticky(struct sock *sk, struct ipv6_opt_hdr *hdr, | 798 | static int ipv6_getsockopt_sticky(struct sock *sk, struct ipv6_txoptions *opt, |
| 799 | char __user *optval, int len) | 799 | char __user *optval, int len) |
| 800 | { | 800 | { |
| 801 | if (!hdr) | 801 | struct ipv6_opt_hdr *hdr; |
| 802 | |||
| 803 | if (!opt || !opt->hopopt) | ||
| 802 | return 0; | 804 | return 0; |
| 805 | hdr = opt->hopopt; | ||
| 806 | |||
| 803 | len = min_t(int, len, ipv6_optlen(hdr)); | 807 | len = min_t(int, len, ipv6_optlen(hdr)); |
| 804 | if (copy_to_user(optval, hdr, ipv6_optlen(hdr))) | 808 | if (copy_to_user(optval, hdr, ipv6_optlen(hdr))) |
| 805 | return -EFAULT; | 809 | return -EFAULT; |
| @@ -940,7 +944,7 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname, | |||
| 940 | { | 944 | { |
| 941 | 945 | ||
| 942 | lock_sock(sk); | 946 | lock_sock(sk); |
| 943 | len = ipv6_getsockopt_sticky(sk, np->opt->hopopt, | 947 | len = ipv6_getsockopt_sticky(sk, np->opt, |
| 944 | optval, len); | 948 | optval, len); |
| 945 | release_sock(sk); | 949 | release_sock(sk); |
| 946 | return put_user(len, optlen); | 950 | return put_user(len, optlen); |
diff --git a/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c b/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c index 6f19c4a49560..d1102455668d 100644 --- a/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c +++ b/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c | |||
| @@ -257,6 +257,7 @@ static unsigned int ipv6_conntrack_in(unsigned int hooknum, | |||
| 257 | } | 257 | } |
| 258 | nf_conntrack_get(reasm->nfct); | 258 | nf_conntrack_get(reasm->nfct); |
| 259 | (*pskb)->nfct = reasm->nfct; | 259 | (*pskb)->nfct = reasm->nfct; |
| 260 | (*pskb)->nfctinfo = reasm->nfctinfo; | ||
| 260 | return NF_ACCEPT; | 261 | return NF_ACCEPT; |
| 261 | } | 262 | } |
| 262 | 263 | ||
