|
@@ -1674,6 +1674,17 @@ vu_get_protocol_features_exec(VuDev *dev, VhostUserMsg *vmsg)
|
|
features |= dev->iface->get_protocol_features(dev);
|
|
features |= dev->iface->get_protocol_features(dev);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+#ifndef MFD_ALLOW_SEALING
|
|
|
|
+ /*
|
|
|
|
+ * If MFD_ALLOW_SEALING is not defined, we are not able to handle
|
|
|
|
+ * VHOST_USER_GET_INFLIGHT_FD messages, since we can't create a memfd.
|
|
|
|
+ * Those messages are used only if VHOST_USER_PROTOCOL_F_INFLIGHT_SHMFD
|
|
|
|
+ * is negotiated. A device implementation can enable it, so let's mask
|
|
|
|
+ * it to avoid a runtime panic.
|
|
|
|
+ */
|
|
|
|
+ features &= ~(1ULL << VHOST_USER_PROTOCOL_F_INFLIGHT_SHMFD);
|
|
|
|
+#endif
|
|
|
|
+
|
|
vmsg_set_reply_u64(vmsg, features);
|
|
vmsg_set_reply_u64(vmsg, features);
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|