This is a note to let you know that I've just added the patch titled net/mlx5e: Don't sync netdev state when not registered to the 4.9-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: net-mlx5e-don-t-sync-netdev-state-when-not-registered.patch and it can be found in the queue-4.9 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From foo@baz Thu Jan 12 21:37:26 CET 2017 From: Saeed Mahameed <saeedm@xxxxxxxxxxxx> Date: Wed, 28 Dec 2016 14:58:41 +0200 Subject: net/mlx5e: Don't sync netdev state when not registered From: Saeed Mahameed <saeedm@xxxxxxxxxxxx> [ Upstream commit 610e89e05c3f28a7394935aa6b91f99548c4fd3c ] Skip setting netdev vxlan ports and netdev rx_mode on driver load when netdev is not yet registered. Synchronizing with netdev state is needed only on reset flow where the netdev remains registered for the whole reset period. This also fixes an access before initialization of net_device.addr_list_lock - which for some reason initialized on register_netdev - where we queued set_rx_mode work on driver load before netdev registration. Fixes: 26e59d8077a3 ("net/mlx5e: Implement mlx5e interface attach/detach callbacks") Signed-off-by: Saeed Mahameed <saeedm@xxxxxxxxxxxx> Reported-by: Sebastian Ott <sebott@xxxxxxxxxxxxxxxxxx> Reviewed-by: Mohamad Haj Yahia <mohamad@xxxxxxxxxxxx> Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c @@ -3773,14 +3773,7 @@ static void mlx5e_nic_enable(struct mlx5 mlx5_lag_add(mdev, netdev); - if (mlx5e_vxlan_allowed(mdev)) { - rtnl_lock(); - udp_tunnel_get_rx_info(netdev); - rtnl_unlock(); - } - mlx5e_enable_async_events(priv); - queue_work(priv->wq, &priv->set_rx_mode_work); if (MLX5_CAP_GEN(mdev, vport_group_manager)) { mlx5_query_nic_vport_mac_address(mdev, 0, rep.hw_id); @@ -3790,6 +3783,18 @@ static void mlx5e_nic_enable(struct mlx5 rep.priv_data = priv; mlx5_eswitch_register_vport_rep(esw, 0, &rep); } + + if (netdev->reg_state != NETREG_REGISTERED) + return; + + /* Device already registered: sync netdev system state */ + if (mlx5e_vxlan_allowed(mdev)) { + rtnl_lock(); + udp_tunnel_get_rx_info(netdev); + rtnl_unlock(); + } + + queue_work(priv->wq, &priv->set_rx_mode_work); } static void mlx5e_nic_disable(struct mlx5e_priv *priv) Patches currently in stable-queue which might be from saeedm@xxxxxxxxxxxx are queue-4.9/net-mlx5e-don-t-sync-netdev-state-when-not-registered.patch queue-4.9/net-mlx5-mask-destination-mac-value-in-ethtool-steering-rules.patch queue-4.9/net-mlx5-check-fw-limitations-on-log_max_qp-before-setting-it.patch queue-4.9/net-mlx5-avoid-shadowing-numa_node.patch queue-4.9/net-mlx5e-disable-netdev-after-close.patch queue-4.9/net-mlx5e-remove-warn_once-from-adaptive-moderation-code.patch queue-4.9/net-mlx5-prevent-setting-multicast-macs-for-vfs.patch queue-4.9/net-mlx5-cancel-recovery-work-in-remove-flow.patch -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html