This series intends to read the fields in virtio-net device configuration space conditionally on the feature bits, this means: MTU exists if VIRTIO_NET_F_MTU is set MAC exists if VIRTIO_NET_F_NET is set MQ exists if VIRTIO_NET_F_MQ or VIRTIO_NET_F_RSS is set. This series report device features to userspace and invokes vdpa_config_ops.get_config() rather than vdpa_get_config_unlocked() to read the device config spcae, so no races in vdpa_set_features_unlocked() Thanks! Changes form V2: remove unnacessary checking for vdev->config->get_status (Jason) Changes from V1: 1)Better comments for VDPA_ATTR_VDPA_DEV_SUPPORTED_FEATURES, only in the header file(Jason) 2)Split original 3/4 into separate patches(Jason) 3)Check FEATURES_OK for reporting driver features in vdpa_dev_config_fill (Jason) 4) Add iproute2 example for reporting device features Zhu Lingshan (6): vDPA: allow userspace to query features of a vDPA device vDPA: only report driver features if FEATURES_OK is set vDPA: check VIRTIO_NET_F_RSS for max_virtqueue_paris's presence vDPA: check virtio device features to detect MQ vDPA: fix spars cast warning in vdpa_dev_net_mq_config_fill vDPA: conditionally read MTU and MAC in dev cfg space drivers/vdpa/vdpa.c | 68 ++++++++++++++++++++++++++++++--------- include/uapi/linux/vdpa.h | 4 +++ 2 files changed, 56 insertions(+), 16 deletions(-) -- 2.31.1