aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2013-07-03 17:50:41 -0400
committerDavid S. Miller <davem@davemloft.net>2013-07-03 17:55:13 -0400
commit0c1072ae0242fbdffd9a0bba36e7a7033d287f9c (patch)
treee0f4dbdbf5078d4a707911177e7bdc17a70bdce5 /net/ipv4
parentc50cd357887acf9fd7af3a5d492911bd825555a2 (diff)
parent8bb495e3f02401ee6f76d1b1d77f3ac9f079e376 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts: drivers/net/ethernet/freescale/fec_main.c drivers/net/ethernet/renesas/sh_eth.c net/ipv4/gre.c The GRE conflict is between a bug fix (kfree_skb --> kfree_skb_list) and the splitting of the gre.c code into seperate files. The FEC conflict was two sets of changes adding ethtool support code in an "!CONFIG_M5272" CPP protected block. Finally the sh_eth.c conflict was between one commit add bits set in the .eesr_err_check mask whilst another commit removed the .tx_error_check member and assignments. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4')
-rw-r--r--net/ipv4/gre_offload.c2
-rw-r--r--net/ipv4/netfilter/ipt_ULOG.c12
-rw-r--r--net/ipv4/tcp_ipv4.c4
3 files changed, 11 insertions, 7 deletions
diff --git a/net/ipv4/gre_offload.c b/net/ipv4/gre_offload.c
index a9d8cd2bff4b..775d5b532ece 100644
--- a/net/ipv4/gre_offload.c
+++ b/net/ipv4/gre_offload.c
@@ -87,7 +87,7 @@ static struct sk_buff *gre_gso_segment(struct sk_buff *skb,
87 87
88 err = __skb_linearize(skb); 88 err = __skb_linearize(skb);
89 if (err) { 89 if (err) {
90 kfree_skb(segs); 90 kfree_skb_list(segs);
91 segs = ERR_PTR(err); 91 segs = ERR_PTR(err);
92 goto out; 92 goto out;
93 } 93 }
diff --git a/net/ipv4/netfilter/ipt_ULOG.c b/net/ipv4/netfilter/ipt_ULOG.c
index 57c671152c42..cbc22158af49 100644
--- a/net/ipv4/netfilter/ipt_ULOG.c
+++ b/net/ipv4/netfilter/ipt_ULOG.c
@@ -125,15 +125,16 @@ static void ulog_send(struct ulog_net *ulog, unsigned int nlgroupnum)
125/* timer function to flush queue in flushtimeout time */ 125/* timer function to flush queue in flushtimeout time */
126static void ulog_timer(unsigned long data) 126static void ulog_timer(unsigned long data)
127{ 127{
128 unsigned int groupnum = *((unsigned int *)data);
128 struct ulog_net *ulog = container_of((void *)data, 129 struct ulog_net *ulog = container_of((void *)data,
129 struct ulog_net, 130 struct ulog_net,
130 nlgroup[*(unsigned int *)data]); 131 nlgroup[groupnum]);
131 pr_debug("timer function called, calling ulog_send\n"); 132 pr_debug("timer function called, calling ulog_send\n");
132 133
133 /* lock to protect against somebody modifying our structure 134 /* lock to protect against somebody modifying our structure
134 * from ipt_ulog_target at the same time */ 135 * from ipt_ulog_target at the same time */
135 spin_lock_bh(&ulog->lock); 136 spin_lock_bh(&ulog->lock);
136 ulog_send(ulog, data); 137 ulog_send(ulog, groupnum);
137 spin_unlock_bh(&ulog->lock); 138 spin_unlock_bh(&ulog->lock);
138} 139}
139 140
@@ -413,8 +414,11 @@ static int __net_init ulog_tg_net_init(struct net *net)
413 414
414 spin_lock_init(&ulog->lock); 415 spin_lock_init(&ulog->lock);
415 /* initialize ulog_buffers */ 416 /* initialize ulog_buffers */
416 for (i = 0; i < ULOG_MAXNLGROUPS; i++) 417 for (i = 0; i < ULOG_MAXNLGROUPS; i++) {
417 setup_timer(&ulog->ulog_buffers[i].timer, ulog_timer, i); 418 ulog->nlgroup[i] = i;
419 setup_timer(&ulog->ulog_buffers[i].timer, ulog_timer,
420 (unsigned long)&ulog->nlgroup[i]);
421 }
418 422
419 ulog->nflognl = netlink_kernel_create(net, NETLINK_NFLOG, &cfg); 423 ulog->nflognl = netlink_kernel_create(net, NETLINK_NFLOG, &cfg);
420 if (!ulog->nflognl) 424 if (!ulog->nflognl)
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
index 1063bb83e342..35675e46aff8 100644
--- a/net/ipv4/tcp_ipv4.c
+++ b/net/ipv4/tcp_ipv4.c
@@ -986,7 +986,7 @@ int tcp_md5_do_add(struct sock *sk, const union tcp_md5_addr *addr,
986 struct tcp_sock *tp = tcp_sk(sk); 986 struct tcp_sock *tp = tcp_sk(sk);
987 struct tcp_md5sig_info *md5sig; 987 struct tcp_md5sig_info *md5sig;
988 988
989 key = tcp_md5_do_lookup(sk, (union tcp_md5_addr *)&addr, AF_INET); 989 key = tcp_md5_do_lookup(sk, addr, family);
990 if (key) { 990 if (key) {
991 /* Pre-existing entry - just update that one. */ 991 /* Pre-existing entry - just update that one. */
992 memcpy(key->key, newkey, newkeylen); 992 memcpy(key->key, newkey, newkeylen);
@@ -1029,7 +1029,7 @@ int tcp_md5_do_del(struct sock *sk, const union tcp_md5_addr *addr, int family)
1029{ 1029{
1030 struct tcp_md5sig_key *key; 1030 struct tcp_md5sig_key *key;
1031 1031
1032 key = tcp_md5_do_lookup(sk, (union tcp_md5_addr *)&addr, AF_INET); 1032 key = tcp_md5_do_lookup(sk, addr, family);
1033 if (!key) 1033 if (!key)
1034 return -ENOENT; 1034 return -ENOENT;
1035 hlist_del_rcu(&key->node); 1035 hlist_del_rcu(&key->node);