net/mlx5_core/health: Remove deprecated create_singlethread_workqueue
The workqueue health->wq was used as per device private health thread. This was done to perform delayed work. The workqueue has a single workitem(&health->work) and hence doesn't require ordering. It is involved in handling the health of the device and is not being used on a memory reclaim path. Hence, the singlethreaded workqueue has been replaced with the use of system_wq. Work item has been flushed in mlx5_health_cleanup() to ensure that there are no pending tasks while disconnecting the driver. Signed-off-by: Bhaktipriya Shridhar <bhaktipriya96@gmail.com> Acked-by: Leon Romanovsky <leonro@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
90b5ca1766
commit
0a91605cda
|
@ -272,7 +272,7 @@ static void poll_health(unsigned long data)
|
|||
if (in_fatal(dev) && !health->sick) {
|
||||
health->sick = true;
|
||||
print_health_info(dev);
|
||||
queue_work(health->wq, &health->work);
|
||||
schedule_work(&health->work);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -301,7 +301,7 @@ void mlx5_health_cleanup(struct mlx5_core_dev *dev)
|
|||
{
|
||||
struct mlx5_core_health *health = &dev->priv.health;
|
||||
|
||||
destroy_workqueue(health->wq);
|
||||
flush_work(&health->work);
|
||||
}
|
||||
|
||||
int mlx5_health_init(struct mlx5_core_dev *dev)
|
||||
|
@ -316,10 +316,7 @@ int mlx5_health_init(struct mlx5_core_dev *dev)
|
|||
|
||||
strcpy(name, "mlx5_health");
|
||||
strcat(name, dev_name(&dev->pdev->dev));
|
||||
health->wq = create_singlethread_workqueue(name);
|
||||
kfree(name);
|
||||
if (!health->wq)
|
||||
return -ENOMEM;
|
||||
|
||||
INIT_WORK(&health->work, health_care);
|
||||
|
||||
|
|
Loading…
Reference in New Issue