From: David S. Miller Date: Tue, 7 Apr 2015 01:52:19 +0000 (-0400) Subject: Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net X-Git-Tag: v4.1-rc1~128^2~70 X-Git-Url: http://git.cascardo.info/?a=commitdiff_plain;h=c85d6975ef923cffdd56de3e0e6aba0977282cff;p=cascardo%2Flinux.git Merge git://git./linux/kernel/git/davem/net Conflicts: drivers/net/ethernet/mellanox/mlx4/cmd.c net/core/fib_rules.c net/ipv4/fib_frontend.c The fib_rules.c and fib_frontend.c conflicts were locking adjustments in 'net' overlapping addition and removal of code in 'net-next'. The mlx4 conflict was a bug fix in 'net' happening in the same place a constant was being replaced with a more suitable macro. Signed-off-by: David S. Miller --- c85d6975ef923cffdd56de3e0e6aba0977282cff diff --cc drivers/net/ethernet/mellanox/mlx4/cmd.c index 06993ea9e6ba,546ca4226916..f0fbb4ade85d --- a/drivers/net/ethernet/mellanox/mlx4/cmd.c +++ b/drivers/net/ethernet/mellanox/mlx4/cmd.c @@@ -725,9 -724,9 +725,10 @@@ static int mlx4_cmd_wait(struct mlx4_de * on the host, we deprecate the error message for this * specific command/input_mod/opcode_mod/fw-status to be debug. */ - if (op == MLX4_CMD_SET_PORT && in_modifier == 1 && + if (op == MLX4_CMD_SET_PORT && + (in_modifier == 1 || in_modifier == 2) && - op_modifier == 0 && context->fw_status == CMD_STAT_BAD_SIZE) + op_modifier == MLX4_SET_PORT_IB_OPCODE && + context->fw_status == CMD_STAT_BAD_SIZE) mlx4_dbg(dev, "command 0x%x failed: fw status = 0x%x\n", op, context->fw_status); else diff --cc net/core/fib_rules.c index 68ea6950cad1,e4fdc9dfb2c7..9a12668f7d62 --- a/net/core/fib_rules.c +++ b/net/core/fib_rules.c @@@ -165,10 -175,10 +165,10 @@@ void fib_rules_unregister(struct fib_ru spin_lock(&net->rules_mod_lock); list_del_rcu(&ops->list); - fib_rules_cleanup_ops(ops); spin_unlock(&net->rules_mod_lock); + fib_rules_cleanup_ops(ops); - call_rcu(&ops->rcu, fib_rules_put_rcu); + kfree_rcu(ops, rcu); } EXPORT_SYMBOL_GPL(fib_rules_unregister); diff --cc net/ipv4/fib_frontend.c index 2166d2bf1562,23b9b3e86f4c..872494e6e6eb --- a/net/ipv4/fib_frontend.c +++ b/net/ipv4/fib_frontend.c @@@ -1175,18 -1112,15 +1175,16 @@@ static void ip_fib_net_exit(struct net unsigned int i; rtnl_lock(); - #ifdef CONFIG_IP_MULTIPLE_TABLES - fib4_rules_exit(net); + RCU_INIT_POINTER(net->ipv4.fib_local, NULL); + RCU_INIT_POINTER(net->ipv4.fib_main, NULL); + RCU_INIT_POINTER(net->ipv4.fib_default, NULL); #endif - for (i = 0; i < FIB_TABLE_HASHSZ; i++) { - struct fib_table *tb; - struct hlist_head *head; + struct hlist_head *head = &net->ipv4.fib_table_hash[i]; struct hlist_node *tmp; + struct fib_table *tb; - head = &net->ipv4.fib_table_hash[i]; hlist_for_each_entry_safe(tb, tmp, head, tb_hlist) { hlist_del(&tb->tb_hlist); fib_table_flush(tb);