net/virtio-user: enable feature checking
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, which gives a chance for the device to clear it if 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. Reviewed-by: Chenbo Xia <chenbo.xia@intel.com> Signed-off-by: Adrian Moreno <amorenoz@redhat.com>
This commit is contained in:
parent
0b0dc66c72
commit
ce40b4a881
@ -1354,12 +1354,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,
|
||||
|
Loading…
x
Reference in New Issue
Block a user