On Tue, Jan 31, 2023 at 03:22:24PM -0800, Si-Wei Liu wrote:
> The spec says:
>     mtu only exists if VIRTIO_NET_F_MTU is set
>     status only exists if VIRTIO_NET_F_STATUS is set
> 
> We should only show MTU and STATUS conditionally depending on
> the feature bits.
> 
> Signed-off-by: Si-Wei Liu <[email protected]>

so change the subject pls. it seems to say you are showing them
when you previously didn't, what's going on is something like:

        make MTU/status access conditional on feature bits

> ---
>  drivers/vdpa/mlx5/net/mlx5_vnet.c | 22 ++++++++++++++--------
>  1 file changed, 14 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/vdpa/mlx5/net/mlx5_vnet.c 
> b/drivers/vdpa/mlx5/net/mlx5_vnet.c
> index 3a6dbbc6..3d49eae 100644
> --- a/drivers/vdpa/mlx5/net/mlx5_vnet.c
> +++ b/drivers/vdpa/mlx5/net/mlx5_vnet.c
> @@ -3009,6 +3009,8 @@ static int event_handler(struct notifier_block *nb, 
> unsigned long event, void *p
>       struct mlx5_vdpa_wq_ent *wqent;
>  
>       if (event == MLX5_EVENT_TYPE_PORT_CHANGE) {
> +             if (!(ndev->mvdev.actual_features & 
> BIT_ULL(VIRTIO_NET_F_STATUS)))
> +                     return NOTIFY_DONE;
>               switch (eqe->sub_type) {
>               case MLX5_PORT_CHANGE_SUBTYPE_DOWN:
>               case MLX5_PORT_CHANGE_SUBTYPE_ACTIVE:
> @@ -3118,16 +3120,20 @@ static int mlx5_vdpa_dev_add(struct vdpa_mgmt_dev 
> *v_mdev, const char *name,
>                       goto err_alloc;
>       }
>  
> -     err = query_mtu(mdev, &mtu);
> -     if (err)
> -             goto err_alloc;
> +     if (device_features & BIT_ULL(VIRTIO_NET_F_MTU)) {
> +             err = query_mtu(mdev, &mtu);
> +             if (err)
> +                     goto err_alloc;
>  
> -     ndev->config.mtu = cpu_to_mlx5vdpa16(mvdev, mtu);
> +             ndev->config.mtu = cpu_to_mlx5vdpa16(mvdev, mtu);
> +     }
>  
> -     if (get_link_state(mvdev))
> -             ndev->config.status |= cpu_to_mlx5vdpa16(mvdev, 
> VIRTIO_NET_S_LINK_UP);
> -     else
> -             ndev->config.status &= cpu_to_mlx5vdpa16(mvdev, 
> ~VIRTIO_NET_S_LINK_UP);
> +     if (device_features & BIT_ULL(VIRTIO_NET_F_STATUS)) {
> +             if (get_link_state(mvdev))
> +                     ndev->config.status |= cpu_to_mlx5vdpa16(mvdev, 
> VIRTIO_NET_S_LINK_UP);
> +             else
> +                     ndev->config.status &= cpu_to_mlx5vdpa16(mvdev, 
> ~VIRTIO_NET_S_LINK_UP);
> +     }
>  
>       if (add_config->mask & (1 << VDPA_ATTR_DEV_NET_CFG_MACADDR)) {
>               memcpy(ndev->config.mac, add_config->net.mac, ETH_ALEN);
> -- 
> 1.8.3.1

_______________________________________________
Virtualization mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to