vdpa/mlx5: Add support for control VQ and MAC setting
authorEli Cohen <elic@nvidia.com>
Mon, 23 Aug 2021 05:21:22 +0000 (08:21 +0300)
committerMichael S. Tsirkin <mst@redhat.com>
Sun, 5 Sep 2021 20:23:08 +0000 (16:23 -0400)
commit5262912ef3cfc5e518892c3d67fb36412cb813e2
treec35e0225d13e410681bb0dc95223bcfe9d5bd726
parente4fc66508c884b87422a98259cdfe135edae130f
vdpa/mlx5: Add support for control VQ and MAC setting

Add support to handle control virtqueue configurations per virtio
specification. The control virtqueue is implemented in software and no
hardware offloading is involved.

Control VQ configuration need task context, therefore all configurations
are handled in a workqueue created for the purpose.

Modifications are made to the memory registration code to allow for
saving a copy of itolb to be used by the control VQ to access the vring.

The max number of data virtqueus supported by the driver has been
updated to 2 since multiqueue is not supported at this stage and we need
to ensure consistency of VQ indices mapping to either data or control
VQ.

Signed-off-by: Eli Cohen <elic@nvidia.com>
Link: https://lore.kernel.org/r/20210823052123.14909-6-elic@nvidia.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
drivers/vdpa/Kconfig
drivers/vdpa/mlx5/core/mlx5_vdpa.h
drivers/vdpa/mlx5/core/mr.c
drivers/vdpa/mlx5/core/resources.c
drivers/vdpa/mlx5/net/mlx5_vnet.c