vhost: propagate set features handling error
authorMaxime Coquelin <maxime.coquelin@redhat.com>
Wed, 13 Dec 2017 08:51:07 +0000 (09:51 +0100)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 16 Jan 2018 17:47:49 +0000 (18:47 +0100)
Not propagating VHOST_USER_SET_FEATURES request handling
error may result in unpredictable behavior, as host and
guests features may no more be synchronized.

This patch fixes this by reporting the error to the upper
layer, which would result in the device being destroyed
and the connection with the master to be closed.

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Laszlo Ersek <lersek@redhat.com>
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
lib/librte_vhost/vhost_user.c

index a3455ff..5ffd889 100644 (file)
@@ -1268,7 +1268,9 @@ vhost_user_msg_handler(int vid, int fd)
                send_vhost_reply(fd, &msg);
                break;
        case VHOST_USER_SET_FEATURES:
-               vhost_user_set_features(dev, msg.payload.u64);
+               ret = vhost_user_set_features(dev, msg.payload.u64);
+               if (ret)
+                       return -1;
                break;
 
        case VHOST_USER_GET_PROTOCOL_FEATURES: