Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
David S. Miller [Fri, 15 Jun 2012 22:51:55 +0000 (15:51 -0700)]
Conflicts:
net/ipv6/route.c

This deals with a merge conflict between the net-next addition of the
inetpeer network namespace ops, and Thomas Graf's bug fix in
2a0c451ade8e1783c5d453948289e4a978d417c9 which makes sure we don't
register /proc/net/ipv6_route before it is actually safe to do so.

Signed-off-by: David S. Miller <davem@davemloft.net>

1  2 
MAINTAINERS
drivers/net/can/c_can/c_can.c
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
include/net/ip6_fib.h
net/core/dev.c
net/ipv6/ip6_fib.c
net/ipv6/route.c

diff --cc MAINTAINERS
Simple merge
@@@ -591,15 -587,15 +591,15 @@@ static void c_can_chip_config(struct ne
        struct c_can_priv *priv = netdev_priv(dev);
  
        /* enable automatic retransmission */
 -      priv->write_reg(priv, &priv->regs->control,
 +      priv->write_reg(priv, C_CAN_CTRL_REG,
                        CONTROL_ENABLE_AR);
  
-       if (priv->can.ctrlmode & (CAN_CTRLMODE_LISTENONLY &
-                                       CAN_CTRLMODE_LOOPBACK)) {
+       if ((priv->can.ctrlmode & CAN_CTRLMODE_LISTENONLY) &&
+           (priv->can.ctrlmode & CAN_CTRLMODE_LOOPBACK)) {
                /* loopback + silent mode : useful for hot self-test */
 -              priv->write_reg(priv, &priv->regs->control, CONTROL_EIE |
 +              priv->write_reg(priv, C_CAN_CTRL_REG, CONTROL_EIE |
                                CONTROL_SIE | CONTROL_IE | CONTROL_TEST);
 -              priv->write_reg(priv, &priv->regs->test,
 +              priv->write_reg(priv, C_CAN_TEST_REG,
                                TEST_LBACK | TEST_SILENT);
        } else if (priv->can.ctrlmode & CAN_CTRLMODE_LOOPBACK) {
                /* loopback mode : useful for self-test function */
Simple merge
diff --cc net/core/dev.c
Simple merge
Simple merge
@@@ -2978,10 -3022,10 +2978,14 @@@ int __init ip6_route_init(void
        if (ret)
                goto out_dst_entries;
  
 -      ret = register_pernet_subsys(&ip6_route_net_ops);
 +      ret = register_pernet_subsys(&ipv6_inetpeer_ops);
        if (ret)
-               goto out_register_subsys;
+               goto out_fib6_init;
++      ret = register_pernet_subsys(&ip6_route_net_ops);
++      if (ret)
++              goto out_register_inetpeer;
 +
        ip6_dst_blackhole_ops.kmem_cachep = ip6_dst_ops_template.kmem_cachep;
  
        /* Registering of the loopback is done before this portion of code,
@@@ -3024,12 -3068,12 +3028,14 @@@ fib6_rules_init
        fib6_rules_cleanup();
  xfrm6_init:
        xfrm6_fini();
- out_fib6_init:
-       fib6_gc_cleanup();
- out_register_inetpeer:
-       unregister_pernet_subsys(&ipv6_inetpeer_ops);
+ out_fib6_init_late:
+       fib6_cleanup_late();
  out_register_subsys:
        unregister_pernet_subsys(&ip6_route_net_ops);
++out_register_inetpeer:
++      unregister_pernet_subsys(&ipv6_inetpeer_ops);
+ out_fib6_init:
+       fib6_gc_cleanup();
  out_dst_entries:
        dst_entries_destroy(&ip6_dst_blackhole_ops);
  out_kmem_cache: