提交 8edf51a5 编写于 作者: L Linus Torvalds

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:
  [IPV4] devinet: inetdev_init out label moved after RCU assignment
  [INET]: style updates for the inet_sock->is_icsk assignment fix
  [SCTP]: Fix err_hdr assignment in sctp_init_cause.
  [NETFILTER]: tcp conntrack: fix IP_CT_TCP_FLAG_CLOSE_INIT value
  [NETFILTER]: nf_nat: fix hanging connections when loading the NAT module
  [NETFILTER]: arp_tables: fix userspace compilation
  [NETFILTER]: nf_conntrack_ipv6: fix crash when handling fragments
...@@ -25,7 +25,7 @@ enum tcp_conntrack { ...@@ -25,7 +25,7 @@ enum tcp_conntrack {
#define IP_CT_TCP_FLAG_SACK_PERM 0x02 #define IP_CT_TCP_FLAG_SACK_PERM 0x02
/* This sender sent FIN first */ /* This sender sent FIN first */
#define IP_CT_TCP_FLAG_CLOSE_INIT 0x03 #define IP_CT_TCP_FLAG_CLOSE_INIT 0x04
#ifdef __KERNEL__ #ifdef __KERNEL__
......
...@@ -190,6 +190,7 @@ struct arpt_replace ...@@ -190,6 +190,7 @@ struct arpt_replace
/* The argument to ARPT_SO_ADD_COUNTERS. */ /* The argument to ARPT_SO_ADD_COUNTERS. */
#define arpt_counters_info xt_counters_info #define arpt_counters_info xt_counters_info
#define arpt_counters xt_counters
/* The argument to ARPT_SO_GET_ENTRIES. */ /* The argument to ARPT_SO_GET_ENTRIES. */
struct arpt_get_entries struct arpt_get_entries
......
...@@ -305,7 +305,7 @@ static int inet_create(struct socket *sock, int protocol) ...@@ -305,7 +305,7 @@ static int inet_create(struct socket *sock, int protocol)
sk->sk_reuse = 1; sk->sk_reuse = 1;
inet = inet_sk(sk); inet = inet_sk(sk);
inet->is_icsk = (INET_PROTOSW_ICSK & answer_flags) == INET_PROTOSW_ICSK; inet->is_icsk = (INET_PROTOSW_ICSK & answer_flags) != 0;
if (SOCK_RAW == sock->type) { if (SOCK_RAW == sock->type) {
inet->num = protocol; inet->num = protocol;
......
...@@ -174,9 +174,10 @@ struct in_device *inetdev_init(struct net_device *dev) ...@@ -174,9 +174,10 @@ struct in_device *inetdev_init(struct net_device *dev)
ip_mc_init_dev(in_dev); ip_mc_init_dev(in_dev);
if (dev->flags & IFF_UP) if (dev->flags & IFF_UP)
ip_mc_up(in_dev); ip_mc_up(in_dev);
out:
/* we can receive as soon as ip_ptr is set -- do this last */ /* we can receive as soon as ip_ptr is set -- do this last */
rcu_assign_pointer(dev->ip_ptr, in_dev); rcu_assign_pointer(dev->ip_ptr, in_dev);
out:
return in_dev; return in_dev;
out_kfree: out_kfree:
kfree(in_dev); kfree(in_dev);
......
...@@ -123,7 +123,7 @@ nf_nat_fn(unsigned int hooknum, ...@@ -123,7 +123,7 @@ nf_nat_fn(unsigned int hooknum,
nat = nfct_nat(ct); nat = nfct_nat(ct);
if (!nat) if (!nat)
return NF_DROP; return NF_ACCEPT;
switch (ctinfo) { switch (ctinfo) {
case IP_CT_RELATED: case IP_CT_RELATED:
......
...@@ -171,7 +171,7 @@ static int inet6_create(struct socket *sock, int protocol) ...@@ -171,7 +171,7 @@ static int inet6_create(struct socket *sock, int protocol)
sk->sk_reuse = 1; sk->sk_reuse = 1;
inet = inet_sk(sk); inet = inet_sk(sk);
inet->is_icsk = (INET_PROTOSW_ICSK & answer_flags) == INET_PROTOSW_ICSK; inet->is_icsk = (INET_PROTOSW_ICSK & answer_flags) != 0;
if (SOCK_RAW == sock->type) { if (SOCK_RAW == sock->type) {
inet->num = protocol; inet->num = protocol;
......
...@@ -835,6 +835,8 @@ void nf_ct_frag6_output(unsigned int hooknum, struct sk_buff *skb, ...@@ -835,6 +835,8 @@ void nf_ct_frag6_output(unsigned int hooknum, struct sk_buff *skb,
s->nfct_reasm = skb; s->nfct_reasm = skb;
s2 = s->next; s2 = s->next;
s->next = NULL;
NF_HOOK_THRESH(PF_INET6, hooknum, s, in, out, okfn, NF_HOOK_THRESH(PF_INET6, hooknum, s, in, out, okfn,
NF_IP6_PRI_CONNTRACK_DEFRAG + 1); NF_IP6_PRI_CONNTRACK_DEFRAG + 1);
s = s2; s = s2;
......
...@@ -124,8 +124,8 @@ void sctp_init_cause(struct sctp_chunk *chunk, __be16 cause_code, ...@@ -124,8 +124,8 @@ void sctp_init_cause(struct sctp_chunk *chunk, __be16 cause_code,
padlen = len % 4; padlen = len % 4;
err.length = htons(len); err.length = htons(len);
len += padlen; len += padlen;
sctp_addto_chunk(chunk, sizeof(sctp_errhdr_t), &err); chunk->subh.err_hdr = sctp_addto_chunk(chunk, sizeof(sctp_errhdr_t), &err);
chunk->subh.err_hdr = sctp_addto_chunk(chunk, paylen, payload); sctp_addto_chunk(chunk, paylen, payload);
} }
/* 3.3.2 Initiation (INIT) (1) /* 3.3.2 Initiation (INIT) (1)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册