Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 217e8b16 authored by Moni Shoua's avatar Moni Shoua Committed by David S. Miller
Browse files

IB/mlx4: Verify net device validity on port change event



Processing an event is done in a different context from the one when
the event was dispatched. This requires a check that the slave
net device is still valid when the event is being processed. The check is done
under the iboe lock which ensure correctness.

Fixes: a5750090 ('IB/mlx4: Add port aggregation support')
Signed-off-by: default avatarMoni Shoua <monis@mellanox.com>
Signed-off-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ced585c8
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -2697,8 +2697,12 @@ static void handle_bonded_port_state_event(struct work_struct *work)
	spin_lock_bh(&ibdev->iboe.lock);
	for (i = 0; i < MLX4_MAX_PORTS; ++i) {
		struct net_device *curr_netdev = ibdev->iboe.netdevs[i];
		enum ib_port_state curr_port_state;

		enum ib_port_state curr_port_state =
		if (!curr_netdev)
			continue;

		curr_port_state =
			(netif_running(curr_netdev) &&
			 netif_carrier_ok(curr_netdev)) ?
			IB_PORT_ACTIVE : IB_PORT_DOWN;