mirror of https://gitee.com/openkylin/linux.git
net/mlx4_core: Raise slave shutdown event upon FLR
There might be cases that PF doesn't get a "reset" command upon slave down (e.g. virsh destroy). In these cases, however, an FLR event is issued. Therefore, when the PF receives an FLR event for a slave, it should also generate a shutdown event on the PF for that slave, to let the PF upper layers (mlx4_ib, eth) perform any required cleanup/actions associated with slave shutdown. Signed-off-by: Yishai Hadas <yishaih@mellanox.com> Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il> Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
parent
ee59fa0d7e
commit
a0667a83af
|
@ -702,6 +702,8 @@ static int mlx4_eq_int(struct mlx4_dev *dev, struct mlx4_eq *eq)
|
||||||
priv->mfunc.master.slave_state[flr_slave].is_slave_going_down = 1;
|
priv->mfunc.master.slave_state[flr_slave].is_slave_going_down = 1;
|
||||||
}
|
}
|
||||||
spin_unlock_irqrestore(&priv->mfunc.master.slave_state_lock, flags);
|
spin_unlock_irqrestore(&priv->mfunc.master.slave_state_lock, flags);
|
||||||
|
mlx4_dispatch_event(dev, MLX4_DEV_EVENT_SLAVE_SHUTDOWN,
|
||||||
|
flr_slave);
|
||||||
queue_work(priv->mfunc.master.comm_wq,
|
queue_work(priv->mfunc.master.comm_wq,
|
||||||
&priv->mfunc.master.slave_flr_event_work);
|
&priv->mfunc.master.slave_flr_event_work);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue