aboutsummaryrefslogtreecommitdiffstats
path: root/net
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
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')
-rw-r--r--net/core/dev.c34
-rw-r--r--net/core/dev_ioctl.c19
-rw-r--r--net/core/skbuff.c20
-rw-r--r--net/core/sock.c17
-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
-rw-r--r--net/ipv6/addrconf.c12
-rw-r--r--net/ipv6/ip6_output.c13
-rw-r--r--net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c2
-rw-r--r--net/key/af_key.c2
-rw-r--r--net/netfilter/ipvs/ip_vs_core.c3
-rw-r--r--net/netfilter/nf_conntrack_labels.c2
-rw-r--r--net/netfilter/nf_conntrack_netlink.c1
-rw-r--r--net/netfilter/nf_nat_sip.c3
15 files changed, 88 insertions, 58 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index 6a93cd8cd264..560dafd83adf 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -800,6 +800,40 @@ struct net_device *dev_get_by_index(struct net *net, int ifindex)
800EXPORT_SYMBOL(dev_get_by_index); 800EXPORT_SYMBOL(dev_get_by_index);
801 801
802/** 802/**
803 * netdev_get_name - get a netdevice name, knowing its ifindex.
804 * @net: network namespace
805 * @name: a pointer to the buffer where the name will be stored.
806 * @ifindex: the ifindex of the interface to get the name from.
807 *
808 * The use of raw_seqcount_begin() and cond_resched() before
809 * retrying is required as we want to give the writers a chance
810 * to complete when CONFIG_PREEMPT is not set.
811 */
812int netdev_get_name(struct net *net, char *name, int ifindex)
813{
814 struct net_device *dev;
815 unsigned int seq;
816
817retry:
818 seq = raw_seqcount_begin(&devnet_rename_seq);
819 rcu_read_lock();
820 dev = dev_get_by_index_rcu(net, ifindex);
821 if (!dev) {
822 rcu_read_unlock();
823 return -ENODEV;
824 }
825
826 strcpy(name, dev->name);
827 rcu_read_unlock();
828 if (read_seqcount_retry(&devnet_rename_seq, seq)) {
829 cond_resched();
830 goto retry;
831 }
832
833 return 0;
834}
835
836/**
803 * dev_getbyhwaddr_rcu - find a device by its hardware address 837 * dev_getbyhwaddr_rcu - find a device by its hardware address
804 * @net: the applicable net namespace 838 * @net: the applicable net namespace
805 * @type: media type of device 839 * @type: media type of device
diff --git a/net/core/dev_ioctl.c b/net/core/dev_ioctl.c
index 6cc0481faade..5b7d0e1d0664 100644
--- a/net/core/dev_ioctl.c
+++ b/net/core/dev_ioctl.c
@@ -19,9 +19,8 @@
19 19
20static int dev_ifname(struct net *net, struct ifreq __user *arg) 20static int dev_ifname(struct net *net, struct ifreq __user *arg)
21{ 21{
22 struct net_device *dev;
23 struct ifreq ifr; 22 struct ifreq ifr;
24 unsigned seq; 23 int error;
25 24
26 /* 25 /*
27 * Fetch the caller's info block. 26 * Fetch the caller's info block.
@@ -30,19 +29,9 @@ static int dev_ifname(struct net *net, struct ifreq __user *arg)
30 if (copy_from_user(&ifr, arg, sizeof(struct ifreq))) 29 if (copy_from_user(&ifr, arg, sizeof(struct ifreq)))
31 return -EFAULT; 30 return -EFAULT;
32 31
33retry: 32 error = netdev_get_name(net, ifr.ifr_name, ifr.ifr_ifindex);
34 seq = read_seqcount_begin(&devnet_rename_seq); 33 if (error)
35 rcu_read_lock(); 34 return error;
36 dev = dev_get_by_index_rcu(net, ifr.ifr_ifindex);
37 if (!dev) {
38 rcu_read_unlock();
39 return -ENODEV;
40 }
41
42 strcpy(ifr.ifr_name, dev->name);
43 rcu_read_unlock();
44 if (read_seqcount_retry(&devnet_rename_seq, seq))
45 goto retry;
46 35
47 if (copy_to_user(arg, &ifr, sizeof(struct ifreq))) 36 if (copy_to_user(arg, &ifr, sizeof(struct ifreq)))
48 return -EFAULT; 37 return -EFAULT;
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index b1fcb8727e56..77971a35d6e1 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -477,15 +477,8 @@ EXPORT_SYMBOL(skb_add_rx_frag);
477 477
478static void skb_drop_list(struct sk_buff **listp) 478static void skb_drop_list(struct sk_buff **listp)
479{ 479{
480 struct sk_buff *list = *listp; 480 kfree_skb_list(*listp);
481
482 *listp = NULL; 481 *listp = NULL;
483
484 do {
485 struct sk_buff *this = list;
486 list = list->next;
487 kfree_skb(this);
488 } while (list);
489} 482}
490 483
491static inline void skb_drop_fraglist(struct sk_buff *skb) 484static inline void skb_drop_fraglist(struct sk_buff *skb)
@@ -645,6 +638,17 @@ void kfree_skb(struct sk_buff *skb)
645} 638}
646EXPORT_SYMBOL(kfree_skb); 639EXPORT_SYMBOL(kfree_skb);
647 640
641void kfree_skb_list(struct sk_buff *segs)
642{
643 while (segs) {
644 struct sk_buff *next = segs->next;
645
646 kfree_skb(segs);
647 segs = next;
648 }
649}
650EXPORT_SYMBOL(kfree_skb_list);
651
648/** 652/**
649 * skb_tx_error - report an sk_buff xmit error 653 * skb_tx_error - report an sk_buff xmit error
650 * @skb: buffer that triggered an error 654 * @skb: buffer that triggered an error
diff --git a/net/core/sock.c b/net/core/sock.c
index b6c619f4d47b..ab06b719f5b1 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -573,9 +573,7 @@ static int sock_getbindtodevice(struct sock *sk, char __user *optval,
573 int ret = -ENOPROTOOPT; 573 int ret = -ENOPROTOOPT;
574#ifdef CONFIG_NETDEVICES 574#ifdef CONFIG_NETDEVICES
575 struct net *net = sock_net(sk); 575 struct net *net = sock_net(sk);
576 struct net_device *dev;
577 char devname[IFNAMSIZ]; 576 char devname[IFNAMSIZ];
578 unsigned seq;
579 577
580 if (sk->sk_bound_dev_if == 0) { 578 if (sk->sk_bound_dev_if == 0) {
581 len = 0; 579 len = 0;
@@ -586,20 +584,9 @@ static int sock_getbindtodevice(struct sock *sk, char __user *optval,
586 if (len < IFNAMSIZ) 584 if (len < IFNAMSIZ)
587 goto out; 585 goto out;
588 586
589retry: 587 ret = netdev_get_name(net, devname, sk->sk_bound_dev_if);
590 seq = read_seqcount_begin(&devnet_rename_seq); 588 if (ret)
591 rcu_read_lock();
592 dev = dev_get_by_index_rcu(net, sk->sk_bound_dev_if);
593 ret = -ENODEV;
594 if (!dev) {
595 rcu_read_unlock();
596 goto out; 589 goto out;
597 }
598
599 strcpy(devname, dev->name);
600 rcu_read_unlock();
601 if (read_seqcount_retry(&devnet_rename_seq, seq))
602 goto retry;
603 590
604 len = strlen(devname) + 1; 591 len = strlen(devname) + 1;
605 592
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);
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index 75fd93bdd0d3..cfdcf7b2daf6 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -2656,6 +2656,9 @@ static void init_loopback(struct net_device *dev)
2656 if (sp_ifa->flags & (IFA_F_DADFAILED | IFA_F_TENTATIVE)) 2656 if (sp_ifa->flags & (IFA_F_DADFAILED | IFA_F_TENTATIVE))
2657 continue; 2657 continue;
2658 2658
2659 if (sp_ifa->rt)
2660 continue;
2661
2659 sp_rt = addrconf_dst_alloc(idev, &sp_ifa->addr, 0); 2662 sp_rt = addrconf_dst_alloc(idev, &sp_ifa->addr, 0);
2660 2663
2661 /* Failure cases are ignored */ 2664 /* Failure cases are ignored */
@@ -4340,6 +4343,7 @@ static int inet6_set_iftoken(struct inet6_dev *idev, struct in6_addr *token)
4340 struct inet6_ifaddr *ifp; 4343 struct inet6_ifaddr *ifp;
4341 struct net_device *dev = idev->dev; 4344 struct net_device *dev = idev->dev;
4342 bool update_rs = false; 4345 bool update_rs = false;
4346 struct in6_addr ll_addr;
4343 4347
4344 if (token == NULL) 4348 if (token == NULL)
4345 return -EINVAL; 4349 return -EINVAL;
@@ -4359,11 +4363,9 @@ static int inet6_set_iftoken(struct inet6_dev *idev, struct in6_addr *token)
4359 4363
4360 write_unlock_bh(&idev->lock); 4364 write_unlock_bh(&idev->lock);
4361 4365
4362 if (!idev->dead && (idev->if_flags & IF_READY)) { 4366 if (!idev->dead && (idev->if_flags & IF_READY) &&
4363 struct in6_addr ll_addr; 4367 !ipv6_get_lladdr(dev, &ll_addr, IFA_F_TENTATIVE |
4364 4368 IFA_F_OPTIMISTIC)) {
4365 ipv6_get_lladdr(dev, &ll_addr, IFA_F_TENTATIVE |
4366 IFA_F_OPTIMISTIC);
4367 4369
4368 /* If we're not ready, then normal ifup will take care 4370 /* If we're not ready, then normal ifup will take care
4369 * of this. Otherwise, we need to request our rs here. 4371 * of this. Otherwise, we need to request our rs here.
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
index be7589ef5cf9..6e3ddf806ec2 100644
--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -381,9 +381,8 @@ int ip6_forward(struct sk_buff *skb)
381 * cannot be fragmented, because there is no warranty 381 * cannot be fragmented, because there is no warranty
382 * that different fragments will go along one path. --ANK 382 * that different fragments will go along one path. --ANK
383 */ 383 */
384 if (opt->ra) { 384 if (unlikely(opt->flags & IP6SKB_ROUTERALERT)) {
385 u8 *ptr = skb_network_header(skb) + opt->ra; 385 if (ip6_call_ra_chain(skb, ntohs(opt->ra)))
386 if (ip6_call_ra_chain(skb, (ptr[2]<<8) + ptr[3]))
387 return 0; 386 return 0;
388 } 387 }
389 388
@@ -822,11 +821,17 @@ static struct dst_entry *ip6_sk_dst_check(struct sock *sk,
822 const struct flowi6 *fl6) 821 const struct flowi6 *fl6)
823{ 822{
824 struct ipv6_pinfo *np = inet6_sk(sk); 823 struct ipv6_pinfo *np = inet6_sk(sk);
825 struct rt6_info *rt = (struct rt6_info *)dst; 824 struct rt6_info *rt;
826 825
827 if (!dst) 826 if (!dst)
828 goto out; 827 goto out;
829 828
829 if (dst->ops->family != AF_INET6) {
830 dst_release(dst);
831 return NULL;
832 }
833
834 rt = (struct rt6_info *)dst;
830 /* Yes, checking route validity in not connected 835 /* Yes, checking route validity in not connected
831 * case is not very simple. Take into account, 836 * case is not very simple. Take into account,
832 * that we do not support routing by source, TOS, 837 * that we do not support routing by source, TOS,
diff --git a/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c b/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c
index 97bcf2bae857..c9b6a6e6a1e8 100644
--- a/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c
+++ b/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c
@@ -204,7 +204,7 @@ static unsigned int __ipv6_conntrack_in(struct net *net,
204 if (ct != NULL && !nf_ct_is_untracked(ct)) { 204 if (ct != NULL && !nf_ct_is_untracked(ct)) {
205 help = nfct_help(ct); 205 help = nfct_help(ct);
206 if ((help && help->helper) || !nf_ct_is_confirmed(ct)) { 206 if ((help && help->helper) || !nf_ct_is_confirmed(ct)) {
207 nf_conntrack_get_reasm(skb); 207 nf_conntrack_get_reasm(reasm);
208 NF_HOOK_THRESH(NFPROTO_IPV6, hooknum, reasm, 208 NF_HOOK_THRESH(NFPROTO_IPV6, hooknum, reasm,
209 (struct net_device *)in, 209 (struct net_device *)in,
210 (struct net_device *)out, 210 (struct net_device *)out,
diff --git a/net/key/af_key.c b/net/key/af_key.c
index c5fbd7589681..9da862070dd8 100644
--- a/net/key/af_key.c
+++ b/net/key/af_key.c
@@ -1710,6 +1710,7 @@ static int key_notify_sa_flush(const struct km_event *c)
1710 hdr->sadb_msg_version = PF_KEY_V2; 1710 hdr->sadb_msg_version = PF_KEY_V2;
1711 hdr->sadb_msg_errno = (uint8_t) 0; 1711 hdr->sadb_msg_errno = (uint8_t) 0;
1712 hdr->sadb_msg_len = (sizeof(struct sadb_msg) / sizeof(uint64_t)); 1712 hdr->sadb_msg_len = (sizeof(struct sadb_msg) / sizeof(uint64_t));
1713 hdr->sadb_msg_reserved = 0;
1713 1714
1714 pfkey_broadcast(skb, GFP_ATOMIC, BROADCAST_ALL, NULL, c->net); 1715 pfkey_broadcast(skb, GFP_ATOMIC, BROADCAST_ALL, NULL, c->net);
1715 1716
@@ -2699,6 +2700,7 @@ static int key_notify_policy_flush(const struct km_event *c)
2699 hdr->sadb_msg_errno = (uint8_t) 0; 2700 hdr->sadb_msg_errno = (uint8_t) 0;
2700 hdr->sadb_msg_satype = SADB_SATYPE_UNSPEC; 2701 hdr->sadb_msg_satype = SADB_SATYPE_UNSPEC;
2701 hdr->sadb_msg_len = (sizeof(struct sadb_msg) / sizeof(uint64_t)); 2702 hdr->sadb_msg_len = (sizeof(struct sadb_msg) / sizeof(uint64_t));
2703 hdr->sadb_msg_reserved = 0;
2702 pfkey_broadcast(skb_out, GFP_ATOMIC, BROADCAST_ALL, NULL, c->net); 2704 pfkey_broadcast(skb_out, GFP_ATOMIC, BROADCAST_ALL, NULL, c->net);
2703 return 0; 2705 return 0;
2704 2706
diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c
index e9b0330f220d..4f69e83ff836 100644
--- a/net/netfilter/ipvs/ip_vs_core.c
+++ b/net/netfilter/ipvs/ip_vs_core.c
@@ -1442,7 +1442,8 @@ ignore_ipip:
1442 1442
1443 /* do the statistics and put it back */ 1443 /* do the statistics and put it back */
1444 ip_vs_in_stats(cp, skb); 1444 ip_vs_in_stats(cp, skb);
1445 if (IPPROTO_TCP == cih->protocol || IPPROTO_UDP == cih->protocol) 1445 if (IPPROTO_TCP == cih->protocol || IPPROTO_UDP == cih->protocol ||
1446 IPPROTO_SCTP == cih->protocol)
1446 offset += 2 * sizeof(__u16); 1447 offset += 2 * sizeof(__u16);
1447 verdict = ip_vs_icmp_xmit(skb, cp, pp, offset, hooknum, &ciph); 1448 verdict = ip_vs_icmp_xmit(skb, cp, pp, offset, hooknum, &ciph);
1448 1449
diff --git a/net/netfilter/nf_conntrack_labels.c b/net/netfilter/nf_conntrack_labels.c
index 8fe2e99428b7..355d2ef08094 100644
--- a/net/netfilter/nf_conntrack_labels.c
+++ b/net/netfilter/nf_conntrack_labels.c
@@ -45,7 +45,7 @@ int nf_connlabel_set(struct nf_conn *ct, u16 bit)
45 if (test_bit(bit, labels->bits)) 45 if (test_bit(bit, labels->bits))
46 return 0; 46 return 0;
47 47
48 if (test_and_set_bit(bit, labels->bits)) 48 if (!test_and_set_bit(bit, labels->bits))
49 nf_conntrack_event_cache(IPCT_LABEL, ct); 49 nf_conntrack_event_cache(IPCT_LABEL, ct);
50 50
51 return 0; 51 return 0;
diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c
index f83a52298efe..edc410e778f7 100644
--- a/net/netfilter/nf_conntrack_netlink.c
+++ b/net/netfilter/nf_conntrack_netlink.c
@@ -1837,6 +1837,7 @@ ctnetlink_new_conntrack(struct sock *ctnl, struct sk_buff *skb,
1837 nf_conntrack_eventmask_report((1 << IPCT_REPLY) | 1837 nf_conntrack_eventmask_report((1 << IPCT_REPLY) |
1838 (1 << IPCT_ASSURED) | 1838 (1 << IPCT_ASSURED) |
1839 (1 << IPCT_HELPER) | 1839 (1 << IPCT_HELPER) |
1840 (1 << IPCT_LABEL) |
1840 (1 << IPCT_PROTOINFO) | 1841 (1 << IPCT_PROTOINFO) |
1841 (1 << IPCT_NATSEQADJ) | 1842 (1 << IPCT_NATSEQADJ) |
1842 (1 << IPCT_MARK), 1843 (1 << IPCT_MARK),
diff --git a/net/netfilter/nf_nat_sip.c b/net/netfilter/nf_nat_sip.c
index 96ccdf78a29f..dac11f73868e 100644
--- a/net/netfilter/nf_nat_sip.c
+++ b/net/netfilter/nf_nat_sip.c
@@ -230,9 +230,10 @@ static unsigned int nf_nat_sip(struct sk_buff *skb, unsigned int protoff,
230 &ct->tuplehash[!dir].tuple.src.u3, 230 &ct->tuplehash[!dir].tuple.src.u3,
231 false); 231 false);
232 if (!mangle_packet(skb, protoff, dataoff, dptr, datalen, 232 if (!mangle_packet(skb, protoff, dataoff, dptr, datalen,
233 poff, plen, buffer, buflen)) 233 poff, plen, buffer, buflen)) {
234 nf_ct_helper_log(skb, ct, "cannot mangle received"); 234 nf_ct_helper_log(skb, ct, "cannot mangle received");
235 return NF_DROP; 235 return NF_DROP;
236 }
236 } 237 }
237 238
238 /* The rport= parameter (RFC 3581) contains the port number 239 /* The rport= parameter (RFC 3581) contains the port number