diff options
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/en_main.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_main.c b/drivers/net/ethernet/mellanox/mlx4/en_main.c index 988b2424e1c6..69ba57270481 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_main.c | |||
@@ -136,13 +136,12 @@ static void mlx4_en_event(struct mlx4_dev *dev, void *endev_ptr, | |||
136 | struct mlx4_en_dev *mdev = (struct mlx4_en_dev *) endev_ptr; | 136 | struct mlx4_en_dev *mdev = (struct mlx4_en_dev *) endev_ptr; |
137 | struct mlx4_en_priv *priv; | 137 | struct mlx4_en_priv *priv; |
138 | 138 | ||
139 | if (!mdev->pndev[port]) | ||
140 | return; | ||
141 | |||
142 | priv = netdev_priv(mdev->pndev[port]); | ||
143 | switch (event) { | 139 | switch (event) { |
144 | case MLX4_DEV_EVENT_PORT_UP: | 140 | case MLX4_DEV_EVENT_PORT_UP: |
145 | case MLX4_DEV_EVENT_PORT_DOWN: | 141 | case MLX4_DEV_EVENT_PORT_DOWN: |
142 | if (!mdev->pndev[port]) | ||
143 | return; | ||
144 | priv = netdev_priv(mdev->pndev[port]); | ||
146 | /* To prevent races, we poll the link state in a separate | 145 | /* To prevent races, we poll the link state in a separate |
147 | task rather than changing it here */ | 146 | task rather than changing it here */ |
148 | priv->link_state = event; | 147 | priv->link_state = event; |
@@ -154,7 +153,10 @@ static void mlx4_en_event(struct mlx4_dev *dev, void *endev_ptr, | |||
154 | break; | 153 | break; |
155 | 154 | ||
156 | default: | 155 | default: |
157 | mlx4_warn(mdev, "Unhandled event: %d\n", event); | 156 | if (port < 1 || port > dev->caps.num_ports || |
157 | !mdev->pndev[port]) | ||
158 | return; | ||
159 | mlx4_warn(mdev, "Unhandled event %d for port %d\n", event, port); | ||
158 | } | 160 | } |
159 | } | 161 | } |
160 | 162 | ||