WSL2-Linux-Kernel/drivers/vdpa
Si-Wei Liu f8f8e96048 vdpa/mlx5: should verify CTRL_VQ feature exists for MQ
[ Upstream commit 30c22f3816 ]

Per VIRTIO v1.1 specification, section 5.1.3.1 Feature bit requirements:
"VIRTIO_NET_F_MQ Requires VIRTIO_NET_F_CTRL_VQ".

There's assumption in the mlx5_vdpa multiqueue code that MQ must come
together with CTRL_VQ. However, there's nowhere in the upper layer to
guarantee this assumption would hold. Were there an untrusted driver
sending down MQ without CTRL_VQ, it would compromise various spots for
e.g. is_index_valid() and is_ctrl_vq_idx(). Although this doesn't end
up with immediate panic or security loophole as of today's code, the
chance for this to be taken advantage of due to future code change is
not zero.

Harden the crispy assumption by failing the set_driver_features() call
when seeing (MQ && !CTRL_VQ). For that end, verify_min_features() is
renamed to verify_driver_features() to reflect the fact that it now does
more than just validate the minimum features. verify_driver_features()
is now used to accommodate various checks against the driver features
for set_driver_features().

Signed-off-by: Si-Wei Liu <si-wei.liu@oracle.com>
Link: https://lore.kernel.org/r/1642206481-30721-3-git-send-email-si-wei.liu@oracle.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Eli Cohen <elic@nvidia.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-04-08 14:22:46 +02:00
..
ifcvf ifcvf/vDPA: fix misuse virtio-net device config size for blk dev 2022-01-27 11:05:06 +01:00
mlx5 vdpa/mlx5: should verify CTRL_VQ feature exists for MQ 2022-04-08 14:22:46 +02:00
vdpa_sim vdpa_sim: avoid putting an uninitialized iova_domain 2021-12-01 09:04:55 +01:00
vdpa_user vduse: Fix returning wrong type in vduse_domain_alloc_iova() 2022-03-16 14:23:36 +01:00
virtio_pci vdpa: fix use-after-free on vp_vdpa_remove 2022-03-16 14:23:36 +01:00
Kconfig vduse: Introduce VDUSE - vDPA Device in Userspace 2021-09-06 07:20:58 -04:00
Makefile vduse: Introduce VDUSE - vDPA Device in Userspace 2021-09-06 07:20:58 -04:00
vdpa.c vdpa: Consider device id larger than 31 2021-12-22 09:32:39 +01:00