> -----Original Message----- > From: Adrian Moreno <amore...@redhat.com> > Sent: Tuesday, August 4, 2020 3:25 PM > To: dev@dpdk.org > Cc: Wang, Zhihong <zhihong.w...@intel.com>; Xia, Chenbo > <chenbo....@intel.com>; maxime.coque...@redhat.com; Adrian Moreno > <amore...@redhat.com> > Subject: [PATCH v2 4/4] net/virtio: enable feature checking on virtio-user > > virtio 1.0 introduced a mechanism for the driver to verify that the > feature bits it sets are accepted by the device. This mechanism consists > in setting the VIRTIO_STATUS_FEATURE_OK status bit and re-reading it, > whitch gives a chance for the device to clear it if the the features > were not accepted. > > This is currently being done only in modern virtio-pci devices but since > the appropriate vhost-user messages have been added, it can also be done > in virtio-user (vhost-user only). > > This patch activates this mechanism on virtio-user. > > Signed-off-by: Adrian Moreno <amore...@redhat.com> > --- > drivers/net/virtio/virtio_ethdev.c | 13 +++++++------ > 1 file changed, 7 insertions(+), 6 deletions(-) > > diff --git a/drivers/net/virtio/virtio_ethdev.c > b/drivers/net/virtio/virtio_ethdev.c > index dc0093bdf..9063bfeb2 100644 > --- a/drivers/net/virtio/virtio_ethdev.c > +++ b/drivers/net/virtio/virtio_ethdev.c > @@ -1355,12 +1355,13 @@ virtio_negotiate_features(struct virtio_hw *hw, > uint64_t req_features) > PMD_INIT_LOG(DEBUG, "features after negotiate = %" PRIx64, > hw->guest_features); > > - if (hw->modern) { > - if (!vtpci_with_feature(hw, VIRTIO_F_VERSION_1)) { > - PMD_INIT_LOG(ERR, > - "VIRTIO_F_VERSION_1 features is not enabled."); > - return -1; > - } > + if (hw->modern && !vtpci_with_feature(hw, VIRTIO_F_VERSION_1)) { > + PMD_INIT_LOG(ERR, > + "VIRTIO_F_VERSION_1 features is not enabled."); > + return -1; > + } > + > + if (hw->modern || hw->virtio_user_dev) { > vtpci_set_status(hw, VIRTIO_CONFIG_STATUS_FEATURES_OK); > if (!(vtpci_get_status(hw) & VIRTIO_CONFIG_STATUS_FEATURES_OK)) > { > PMD_INIT_LOG(ERR, > -- > 2.26.2
Reviewed-by: Chenbo Xia <chenbo....@intel.com>