aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/en_main.c12
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