Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1446 commits) macvlan: fix panic if lowerdev in a bond tg3: Add braces around 5906 workaround. tg3: Fix NETIF_F_LOOPBACK error macvlan: remove one synchronize_rcu() call networking: NET_CLS_ROUTE4 depends on INET irda: Fix error propagation in ircomm_lmp_connect_response() irda: Kill set but unused variable 'bytes' in irlan_check_command_param() irda: Kill set but unused variable 'clen' in ircomm_connect_indication() rxrpc: Fix set but unused variable 'usage' in rxrpc_get_transport() be2net: Kill set but unused variable 'req' in lancer_fw_download() irda: Kill set but unused vars 'saddr' and 'daddr' in irlan_provider_connect_indication() atl1c: atl1c_resume() is only used when CONFIG_PM_SLEEP is defined. rxrpc: Fix set but unused variable 'usage' in rxrpc_get_peer(). rxrpc: Kill set but unused variable 'local' in rxrpc_UDP_error_handler() rxrpc: Kill set but unused variable 'sp' in rxrpc_process_connection() rxrpc: Kill set but unused variable 'sp' in rxrpc_rotate_tx_window() pkt_sched: Kill set but unused variable 'protocol' in tc_classify() isdn: capi: Use pr_debug() instead of ifdefs. tg3: Update version to 3.119 tg3: Apply rx_discards fix to 5719/5720 ... Fix up trivial conflicts in arch/x86/Kconfig and net/mac80211/agg-tx.c as per Davem.
This commit is contained in:
@@ -747,7 +747,8 @@ static int dn_nl_dump_ifaddr(struct sk_buff *skb, struct netlink_callback *cb)
|
||||
skip_naddr = cb->args[1];
|
||||
|
||||
idx = 0;
|
||||
for_each_netdev(&init_net, dev) {
|
||||
rcu_read_lock();
|
||||
for_each_netdev_rcu(&init_net, dev) {
|
||||
if (idx < skip_ndevs)
|
||||
goto cont;
|
||||
else if (idx > skip_ndevs) {
|
||||
@@ -756,11 +757,11 @@ static int dn_nl_dump_ifaddr(struct sk_buff *skb, struct netlink_callback *cb)
|
||||
skip_naddr = 0;
|
||||
}
|
||||
|
||||
if ((dn_db = rtnl_dereference(dev->dn_ptr)) == NULL)
|
||||
if ((dn_db = rcu_dereference(dev->dn_ptr)) == NULL)
|
||||
goto cont;
|
||||
|
||||
for (ifa = rtnl_dereference(dn_db->ifa_list), dn_idx = 0; ifa;
|
||||
ifa = rtnl_dereference(ifa->ifa_next), dn_idx++) {
|
||||
for (ifa = rcu_dereference(dn_db->ifa_list), dn_idx = 0; ifa;
|
||||
ifa = rcu_dereference(ifa->ifa_next), dn_idx++) {
|
||||
if (dn_idx < skip_naddr)
|
||||
continue;
|
||||
|
||||
@@ -773,6 +774,7 @@ cont:
|
||||
idx++;
|
||||
}
|
||||
done:
|
||||
rcu_read_unlock();
|
||||
cb->args[0] = idx;
|
||||
cb->args[1] = dn_idx;
|
||||
|
||||
|
@@ -1125,13 +1125,11 @@ make_route:
|
||||
if (dev_out->flags & IFF_LOOPBACK)
|
||||
flags |= RTCF_LOCAL;
|
||||
|
||||
rt = dst_alloc(&dn_dst_ops, 0);
|
||||
rt = dst_alloc(&dn_dst_ops, dev_out, 1, 0, DST_HOST);
|
||||
if (rt == NULL)
|
||||
goto e_nobufs;
|
||||
|
||||
atomic_set(&rt->dst.__refcnt, 1);
|
||||
rt->dst.flags = DST_HOST;
|
||||
|
||||
memset(&rt->fld, 0, sizeof(rt->fld));
|
||||
rt->fld.saddr = oldflp->saddr;
|
||||
rt->fld.daddr = oldflp->daddr;
|
||||
rt->fld.flowidn_oif = oldflp->flowidn_oif;
|
||||
@@ -1146,8 +1144,6 @@ make_route:
|
||||
rt->rt_dst_map = fld.daddr;
|
||||
rt->rt_src_map = fld.saddr;
|
||||
|
||||
rt->dst.dev = dev_out;
|
||||
dev_hold(dev_out);
|
||||
rt->dst.neighbour = neigh;
|
||||
neigh = NULL;
|
||||
|
||||
@@ -1399,10 +1395,11 @@ static int dn_route_input_slow(struct sk_buff *skb)
|
||||
}
|
||||
|
||||
make_route:
|
||||
rt = dst_alloc(&dn_dst_ops, 0);
|
||||
rt = dst_alloc(&dn_dst_ops, out_dev, 0, 0, DST_HOST);
|
||||
if (rt == NULL)
|
||||
goto e_nobufs;
|
||||
|
||||
memset(&rt->fld, 0, sizeof(rt->fld));
|
||||
rt->rt_saddr = fld.saddr;
|
||||
rt->rt_daddr = fld.daddr;
|
||||
rt->rt_gateway = fld.daddr;
|
||||
@@ -1419,9 +1416,7 @@ make_route:
|
||||
rt->fld.flowidn_iif = in_dev->ifindex;
|
||||
rt->fld.flowidn_mark = fld.flowidn_mark;
|
||||
|
||||
rt->dst.flags = DST_HOST;
|
||||
rt->dst.neighbour = neigh;
|
||||
rt->dst.dev = out_dev;
|
||||
rt->dst.lastuse = jiffies;
|
||||
rt->dst.output = dn_rt_bug;
|
||||
switch(res.type) {
|
||||
@@ -1440,8 +1435,6 @@ make_route:
|
||||
rt->dst.input = dst_discard;
|
||||
}
|
||||
rt->rt_flags = flags;
|
||||
if (rt->dst.dev)
|
||||
dev_hold(rt->dst.dev);
|
||||
|
||||
err = dn_rt_set_next_hop(rt, &res);
|
||||
if (err)
|
||||
|
@@ -123,11 +123,11 @@ static inline void dn_rebuild_zone(struct dn_zone *dz,
|
||||
struct dn_fib_node **old_ht,
|
||||
int old_divisor)
|
||||
{
|
||||
int i;
|
||||
struct dn_fib_node *f, **fp, *next;
|
||||
int i;
|
||||
|
||||
for(i = 0; i < old_divisor; i++) {
|
||||
for(f = old_ht[i]; f; f = f->fn_next) {
|
||||
for(f = old_ht[i]; f; f = next) {
|
||||
next = f->fn_next;
|
||||
for(fp = dn_chain_p(f->fn_key, dz);
|
||||
*fp && dn_key_leq((*fp)->fn_key, f->fn_key);
|
||||
|
Reference in New Issue
Block a user