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

Commit 0a91605c authored by Bhaktipriya Shridhar's avatar Bhaktipriya Shridhar Committed by David S. Miller
Browse files

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: default avatarBhaktipriya Shridhar <bhaktipriya96@gmail.com>
Acked-by: default avatarLeon Romanovsky <leonro@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 90b5ca17
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -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);