diff options
author | Talat Batheesh <talatb@mellanox.com> | 2017-03-28 09:13:41 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-03-28 21:07:15 -0400 |
commit | e497ec680c4cd51e76bfcdd49363d9ab8d32a757 (patch) | |
tree | a640dc269b2ded61147fd5fb391d5bfafb30c68b | |
parent | c2b341a620018d4eaeb0e85c16274ac4e5f153d4 (diff) |
net/mlx5: Avoid dereferencing uninitialized pointer
In NETDEV_CHANGEUPPER event the upper_info field is valid
only when linking is true. Otherwise it should be ignored.
Fixes: 7907f23adc18 (net/mlx5: Implement RoCE LAG feature)
Signed-off-by: Talat Batheesh <talatb@mellanox.com>
Reviewed-by: Aviv Heller <avivh@mellanox.com>
Reviewed-by: Moni Shoua <monis@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/lag.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lag.c b/drivers/net/ethernet/mellanox/mlx5/core/lag.c index 55957246c0e8..b5d5519542e8 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lag.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lag.c | |||
@@ -294,7 +294,7 @@ static int mlx5_handle_changeupper_event(struct mlx5_lag *ldev, | |||
294 | struct netdev_notifier_changeupper_info *info) | 294 | struct netdev_notifier_changeupper_info *info) |
295 | { | 295 | { |
296 | struct net_device *upper = info->upper_dev, *ndev_tmp; | 296 | struct net_device *upper = info->upper_dev, *ndev_tmp; |
297 | struct netdev_lag_upper_info *lag_upper_info; | 297 | struct netdev_lag_upper_info *lag_upper_info = NULL; |
298 | bool is_bonded; | 298 | bool is_bonded; |
299 | int bond_status = 0; | 299 | int bond_status = 0; |
300 | int num_slaves = 0; | 300 | int num_slaves = 0; |
@@ -303,7 +303,8 @@ static int mlx5_handle_changeupper_event(struct mlx5_lag *ldev, | |||
303 | if (!netif_is_lag_master(upper)) | 303 | if (!netif_is_lag_master(upper)) |
304 | return 0; | 304 | return 0; |
305 | 305 | ||
306 | lag_upper_info = info->upper_info; | 306 | if (info->linking) |
307 | lag_upper_info = info->upper_info; | ||
307 | 308 | ||
308 | /* The event may still be of interest if the slave does not belong to | 309 | /* The event may still be of interest if the slave does not belong to |
309 | * us, but is enslaved to a master which has one or more of our netdevs | 310 | * us, but is enslaved to a master which has one or more of our netdevs |