Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

net/mlx5: Add support for querying bond speed

Add mlx5_lag_query_bond_speed() to query the aggregated speed of
lag configurations with a bond device.

Signed-off-by: Or Har-Toov <ohartoov@nvidia.com>
Reviewed-by: Mark Bloch <mbloch@nvidia.com>
Signed-off-by: Edward Srouji <edwards@nvidia.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>

authored by

Or Har-Toov and committed by
Leon Romanovsky
f0b2fde9 28ea6036

+28 -1
+27
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
··· 1464 1464 tracker->bond_speed_mbps = lksettings.base.speed; 1465 1465 } 1466 1466 1467 + /* Returns speed in Mbps. */ 1468 + int mlx5_lag_query_bond_speed(struct mlx5_core_dev *mdev, u32 *speed) 1469 + { 1470 + struct mlx5_lag *ldev; 1471 + unsigned long flags; 1472 + int ret = 0; 1473 + 1474 + spin_lock_irqsave(&lag_lock, flags); 1475 + ldev = mlx5_lag_dev(mdev); 1476 + if (!ldev) { 1477 + ret = -ENODEV; 1478 + goto unlock; 1479 + } 1480 + 1481 + *speed = ldev->tracker.bond_speed_mbps; 1482 + 1483 + if (*speed == SPEED_UNKNOWN) { 1484 + mlx5_core_dbg(mdev, "Bond speed is unknown\n"); 1485 + ret = -EINVAL; 1486 + } 1487 + 1488 + unlock: 1489 + spin_unlock_irqrestore(&lag_lock, flags); 1490 + return ret; 1491 + } 1492 + EXPORT_SYMBOL_GPL(mlx5_lag_query_bond_speed); 1493 + 1467 1494 /* this handler is always registered to netdev events */ 1468 1495 static int mlx5_lag_netdev_event(struct notifier_block *this, 1469 1496 unsigned long event, void *ptr)
+1 -1
include/linux/mlx5/driver.h
··· 1149 1149 bool mlx5_lag_is_roce(struct mlx5_core_dev *dev); 1150 1150 bool mlx5_lag_is_sriov(struct mlx5_core_dev *dev); 1151 1151 bool mlx5_lag_is_active(struct mlx5_core_dev *dev); 1152 - int mlx5_lag_query_bond_speed(struct net_device *bond_dev, u32 *speed); 1152 + int mlx5_lag_query_bond_speed(struct mlx5_core_dev *dev, u32 *speed); 1153 1153 bool mlx5_lag_mode_is_hash(struct mlx5_core_dev *dev); 1154 1154 bool mlx5_lag_is_master(struct mlx5_core_dev *dev); 1155 1155 bool mlx5_lag_is_shared_fdb(struct mlx5_core_dev *dev);