From: Eli Cohen <elic@xxxxxxxxxx> Add code to accept MAC configuration through vdpa tool. The MAC is written into the config struct and later can be retrieved through get_config(). Examples: 1. Configure MAC: $ vdpa dev config set vdpa0 mac 00:11:22:33:44:55 2. Show configured params: $ vdpa dev config show vdpa0: mac 00:11:22:33:44:55 link down link_announce false mtu 0 speed 0 duplex 0 Signed-off-by: Eli Cohen <elic@xxxxxxxxxx> Reviewed-by: Parav Pandit <parav@xxxxxxxxxx> --- changelog: v2->v3: - following new api for config space setup for mgmt tool v1->v2: - following new api for config get/set for mgmt tool --- drivers/vdpa/mlx5/net/mlx5_vnet.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/drivers/vdpa/mlx5/net/mlx5_vnet.c b/drivers/vdpa/mlx5/net/mlx5_vnet.c index dda5dc6f7737..7f3d09f201fc 100644 --- a/drivers/vdpa/mlx5/net/mlx5_vnet.c +++ b/drivers/vdpa/mlx5/net/mlx5_vnet.c @@ -1831,6 +1831,30 @@ static void mlx5_vdpa_set_config(struct vdpa_device *vdev, unsigned int offset, /* not supported */ } +static int mlx5_vdpa_setup_config(struct vdpa_device *vdev, + const struct vdpa_dev_set_config *config) +{ + struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev); + struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev); + int err = 0; + + mutex_lock(&ndev->reslock); + if (ndev->setup) + err = -EBUSY; + mutex_unlock(&ndev->reslock); + + if (err) + return err; + + if (config->net_mask.mtu_valid) + return -EOPNOTSUPP; + + if (config->net_mask.mac_valid) + memcpy(ndev->config.mac, config->net.mac, ETH_ALEN); + + return 0; +} + static u32 mlx5_vdpa_get_generation(struct vdpa_device *vdev) { struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev); @@ -1909,6 +1933,7 @@ static const struct vdpa_config_ops mlx5_vdpa_ops = { .get_config_size = mlx5_vdpa_get_config_size, .get_config = mlx5_vdpa_get_config, .set_config = mlx5_vdpa_set_config, + .setup_config = mlx5_vdpa_setup_config, .get_generation = mlx5_vdpa_get_generation, .set_map = mlx5_vdpa_set_map, .free = mlx5_vdpa_free, -- 2.26.2 _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization