From: David S. Miller Date: Fri, 15 Jun 2012 22:51:55 +0000 (-0700) Subject: Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net X-Git-Tag: firefly_0821_release~3680^2~2381^2~533 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=7e52b33bd50faa866bc3e6e97e68438bc5e52251;p=firefly-linux-kernel-4.4.55.git Merge git://git./linux/kernel/git/davem/net 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 --- 7e52b33bd50faa866bc3e6e97e68438bc5e52251 diff --cc drivers/net/can/c_can/c_can.c index e2ce508c2753,86cd532c78f9..eea660800a09 --- a/drivers/net/can/c_can/c_can.c +++ b/drivers/net/can/c_can/c_can.c @@@ -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 */ diff --cc net/ipv6/route.c index 0d41f68daff2,dc60bf585966..c7ccc36ba63e --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@@ -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: