It looks like the lately posted v6 series missed this change somehow?I wonder if we can change this lock to r/w semaphore too, otherwise it almost defeats the merit of converting vdpa_dev_mutex to the same. This change would benefit multiple parallel readers.
+
+static int mlx5_vdpa_get_vendor_vq_stats(struct vdpa_device *vdev, u16 idx,
+ struct sk_buff *msg,
+ struct netlink_ext_ack *extack)
+{
+ struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
+ struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
+ struct mlx5_vdpa_virtqueue *mvq;
+ struct mlx5_control_vq *cvq;
+ u64 received_desc;
+ u64 completed_desc;
+ int err = 0;
+ u16 max_vqp;
+
+ mutex_lock(&ndev->reslock);