The control VQ specific information is stored in the dedicated struct mlx5_control_vq. When the callback is updated through mlx5_vdpa_set_vq_cb(), make sure to update the control VQ struct.
Unified · Split
| @@ -1962,6 +1962,8 @@ static void mlx5_vdpa_set_vq_cb(struct vdpa_device *vdev, u16 idx, struct vdpa_c · 1961 unmodified lines | |||
| 1962 | struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev); | 1962 | struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev); |
| 1963 | 1963 | ||
| 1964 | ndev->event_cbs[idx] = *cb; | 1964 | ndev->event_cbs[idx] = *cb; |
| 1965 | if (is_ctrl_vq_idx(mvdev, idx)) | ||
| 1966 | mvdev->cvq.event_cb = *cb; | ||
| 1965 | } | 1967 | } |
| 1966 | 1968 | ||
| 1967 | static void mlx5_cvq_notify(struct vringh *vring) | 1969 | static void mlx5_cvq_notify(struct vringh *vring) |