Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Minor conflict with the DSA legacy code removal. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -31,6 +31,7 @@
|
||||
#include <linux/times.h>
|
||||
#include <net/net_namespace.h>
|
||||
#include <net/neighbour.h>
|
||||
#include <net/arp.h>
|
||||
#include <net/dst.h>
|
||||
#include <net/sock.h>
|
||||
#include <net/netevent.h>
|
||||
@@ -663,6 +664,8 @@ out:
|
||||
out_tbl_unlock:
|
||||
write_unlock_bh(&tbl->lock);
|
||||
out_neigh_release:
|
||||
if (!exempt_from_gc)
|
||||
atomic_dec(&tbl->gc_entries);
|
||||
neigh_release(n);
|
||||
goto out;
|
||||
}
|
||||
@@ -2990,7 +2993,13 @@ int neigh_xmit(int index, struct net_device *dev,
|
||||
if (!tbl)
|
||||
goto out;
|
||||
rcu_read_lock_bh();
|
||||
neigh = __neigh_lookup_noref(tbl, addr, dev);
|
||||
if (index == NEIGH_ARP_TABLE) {
|
||||
u32 key = *((u32 *)addr);
|
||||
|
||||
neigh = __ipv4_neigh_lookup_noref(dev, key);
|
||||
} else {
|
||||
neigh = __neigh_lookup_noref(tbl, addr, dev);
|
||||
}
|
||||
if (!neigh)
|
||||
neigh = __neigh_create(tbl, addr, dev, false);
|
||||
err = PTR_ERR(neigh);
|
||||
|
@@ -344,7 +344,7 @@ static int __init dsa_init_module(void)
|
||||
|
||||
rc = dsa_slave_register_notifier();
|
||||
if (rc)
|
||||
return rc;
|
||||
goto register_notifier_fail;
|
||||
|
||||
dev_add_pack(&dsa_pack_type);
|
||||
|
||||
@@ -352,6 +352,11 @@ static int __init dsa_init_module(void)
|
||||
THIS_MODULE);
|
||||
|
||||
return 0;
|
||||
|
||||
register_notifier_fail:
|
||||
destroy_workqueue(dsa_owq);
|
||||
|
||||
return rc;
|
||||
}
|
||||
module_init(dsa_init_module);
|
||||
|
||||
|
@@ -335,8 +335,6 @@ next_entry2:
|
||||
}
|
||||
spin_unlock_bh(lock);
|
||||
err = 0;
|
||||
e = 0;
|
||||
|
||||
out:
|
||||
cb->args[1] = e;
|
||||
return err;
|
||||
@@ -374,6 +372,7 @@ int mr_rtm_dumproute(struct sk_buff *skb, struct netlink_callback *cb,
|
||||
err = mr_table_dump(mrt, skb, cb, fill, lock, filter);
|
||||
if (err < 0)
|
||||
break;
|
||||
cb->args[1] = 0;
|
||||
next_table:
|
||||
t++;
|
||||
}
|
||||
|
@@ -1084,7 +1084,7 @@ static void ipip6_tunnel_bind_dev(struct net_device *dev)
|
||||
if (!tdev && tunnel->parms.link)
|
||||
tdev = __dev_get_by_index(tunnel->net, tunnel->parms.link);
|
||||
|
||||
if (tdev) {
|
||||
if (tdev && !netif_is_l3_master(tdev)) {
|
||||
int t_hlen = tunnel->hlen + sizeof(struct iphdr);
|
||||
|
||||
dev->hard_header_len = tdev->hard_header_len + sizeof(struct iphdr);
|
||||
|
@@ -1735,7 +1735,8 @@ static __net_exit void l2tp_exit_net(struct net *net)
|
||||
}
|
||||
rcu_read_unlock_bh();
|
||||
|
||||
flush_workqueue(l2tp_wq);
|
||||
if (l2tp_wq)
|
||||
flush_workqueue(l2tp_wq);
|
||||
rcu_barrier();
|
||||
|
||||
for (hash = 0; hash < L2TP_HASH_SIZE_2; hash++)
|
||||
|
@@ -551,7 +551,7 @@ static __net_init int rds_tcp_init_net(struct net *net)
|
||||
tbl = kmemdup(rds_tcp_sysctl_table,
|
||||
sizeof(rds_tcp_sysctl_table), GFP_KERNEL);
|
||||
if (!tbl) {
|
||||
pr_warn("could not set allocate syctl table\n");
|
||||
pr_warn("could not set allocate sysctl table\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
rtn->ctl_table = tbl;
|
||||
|
@@ -32,6 +32,8 @@ static int cls_cgroup_classify(struct sk_buff *skb, const struct tcf_proto *tp,
|
||||
struct cls_cgroup_head *head = rcu_dereference_bh(tp->root);
|
||||
u32 classid = task_get_classid(skb);
|
||||
|
||||
if (unlikely(!head))
|
||||
return -1;
|
||||
if (!classid)
|
||||
return -1;
|
||||
if (!tcf_em_tree_match(skb, &head->ematches, NULL))
|
||||
|
@@ -32,6 +32,9 @@ static int mall_classify(struct sk_buff *skb, const struct tcf_proto *tp,
|
||||
{
|
||||
struct cls_mall_head *head = rcu_dereference_bh(tp->root);
|
||||
|
||||
if (unlikely(!head))
|
||||
return -1;
|
||||
|
||||
if (tc_skip_sw(head->flags))
|
||||
return -1;
|
||||
|
||||
|
Reference in New Issue
Block a user