> +static int mlx5_vdpa_set_attr(struct vdpa_mgmt_dev *v_mdev, struct vdpa_device *dev, > + const struct vdpa_dev_set_config *add_config) > +{ > + struct virtio_net_config *config; > + struct mlx5_core_dev *pfmdev; > + struct mlx5_vdpa_dev *mvdev; > + struct mlx5_vdpa_net *ndev; > + struct mlx5_core_dev *mdev; > + int err = -EINVAL; I would say this should also be EOPNOTSUPP. > + > + mvdev = to_mvdev(dev); > + ndev = to_mlx5_vdpa_ndev(mvdev); > + mdev = mvdev->mdev; > + config = &ndev->config; > + > + down_write(&ndev->reslock); > + if (add_config->mask & (1 << VDPA_ATTR_DEV_NET_CFG_MACADDR)) { > + pfmdev = pci_get_drvdata(pci_physfn(mdev->pdev)); > + err = mlx5_mpfs_add_mac(pfmdev, config->mac); > + if (!err) > + ether_addr_copy(config->mac, add_config->net.mac); > + } > + > + up_write(&ndev->reslock); > + return err; Andrew --- pw-bot: cr