Skip to content

Commit e6ee5e7

Browse files
roidayanSaeed Mahameed
authored andcommitted
net/mlx5: Use own workqueue for lag netdev events processing
Instead of using the system workqueue, allocate our own workqueue. This workqueue will be used to handle more work in the next patch. This patch doesn't change functionality. Signed-off-by: Roi Dayan <[email protected]> Reviewed-by: Or Gerlitz <[email protected]> Signed-off-by: Saeed Mahameed <[email protected]>
1 parent 10a193e commit e6ee5e7

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

drivers/net/ethernet/mellanox/mlx5/core/lag.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,7 @@ static void mlx5_do_bond(struct mlx5_lag *ldev)
346346

347347
static void mlx5_queue_bond_work(struct mlx5_lag *ldev, unsigned long delay)
348348
{
349-
schedule_delayed_work(&ldev->bond_work, delay);
349+
queue_delayed_work(ldev->wq, &ldev->bond_work, delay);
350350
}
351351

352352
static void mlx5_do_bond_work(struct work_struct *work)
@@ -498,13 +498,20 @@ static struct mlx5_lag *mlx5_lag_dev_alloc(void)
498498
if (!ldev)
499499
return NULL;
500500

501+
ldev->wq = create_singlethread_workqueue("mlx5_lag");
502+
if (!ldev->wq) {
503+
kfree(ldev);
504+
return NULL;
505+
}
506+
501507
INIT_DELAYED_WORK(&ldev->bond_work, mlx5_do_bond_work);
502508

503509
return ldev;
504510
}
505511

506512
static void mlx5_lag_dev_free(struct mlx5_lag *ldev)
507513
{
514+
destroy_workqueue(ldev->wq);
508515
kfree(ldev);
509516
}
510517

drivers/net/ethernet/mellanox/mlx5/core/lag.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ struct mlx5_lag {
3333
u8 v2p_map[MLX5_MAX_PORTS];
3434
struct lag_func pf[MLX5_MAX_PORTS];
3535
struct lag_tracker tracker;
36+
struct workqueue_struct *wq;
3637
struct delayed_work bond_work;
3738
struct notifier_block nb;
3839
};

0 commit comments

Comments
 (0)