#define VHOST_DMA_IS_DONE(len) ((__force u32)(len) >= (__force u32)VHOST_DMA_DONE_LEN)
  
 -enum {
 -      VHOST_NET_FEATURES = VHOST_FEATURES |
 -                       (1ULL << VHOST_NET_F_VIRTIO_NET_HDR) |
 -                       (1ULL << VIRTIO_NET_F_MRG_RXBUF) |
 -                       (1ULL << VIRTIO_F_ACCESS_PLATFORM) |
 -                       (1ULL << VIRTIO_F_RING_RESET) |
 -                       (1ULL << VIRTIO_F_IN_ORDER)
 +static const u64 vhost_net_features[VIRTIO_FEATURES_DWORDS] = {
 +      VHOST_FEATURES |
 +      (1ULL << VHOST_NET_F_VIRTIO_NET_HDR) |
 +      (1ULL << VIRTIO_NET_F_MRG_RXBUF) |
 +      (1ULL << VIRTIO_F_ACCESS_PLATFORM) |
-       (1ULL << VIRTIO_F_RING_RESET),
++      (1ULL << VIRTIO_F_RING_RESET) |
++      (1ULL << VIRTIO_F_IN_ORDER),
 +      VIRTIO_BIT(VIRTIO_NET_F_GUEST_UDP_TUNNEL_GSO) |
 +      VIRTIO_BIT(VIRTIO_NET_F_HOST_UDP_TUNNEL_GSO),
  };
  
  enum {
 
  #define VHOST_VDPA_GET_VRING_SIZE     _IOWR(VHOST_VIRTIO, 0x82,       \
                                              struct vhost_vring_state)
  
 +/* Extended features manipulation */
 +#define VHOST_GET_FEATURES_ARRAY _IOR(VHOST_VIRTIO, 0x83, \
 +                                     struct vhost_features_array)
 +#define VHOST_SET_FEATURES_ARRAY _IOW(VHOST_VIRTIO, 0x83, \
 +                                     struct vhost_features_array)
 +
+ /* fork_owner values for vhost */
+ #define VHOST_FORK_OWNER_KTHREAD 0
+ #define VHOST_FORK_OWNER_TASK 1
+ 
+ /**
+  * VHOST_SET_FORK_FROM_OWNER - Set the fork_owner flag for the vhost device,
+  * This ioctl must called before VHOST_SET_OWNER.
+  * Only available when CONFIG_VHOST_ENABLE_FORK_OWNER_CONTROL=y
+  *
+  * @param fork_owner: An 8-bit value that determines the vhost thread mode
+  *
+  * When fork_owner is set to VHOST_FORK_OWNER_TASK(default value):
+  *   - Vhost will create vhost worker as tasks forked from the owner,
+  *     inheriting all of the owner's attributes.
+  *
+  * When fork_owner is set to VHOST_FORK_OWNER_KTHREAD:
+  *   - Vhost will create vhost workers as kernel threads.
+  */
+ #define VHOST_SET_FORK_FROM_OWNER _IOW(VHOST_VIRTIO, 0x83, __u8)
+ 
+ /**
+  * VHOST_GET_FORK_OWNER - Get the current fork_owner flag for the vhost device.
+  * Only available when CONFIG_VHOST_ENABLE_FORK_OWNER_CONTROL=y
+  *
+  * @return: An 8-bit value indicating the current thread mode.
+  */
+ #define VHOST_GET_FORK_FROM_OWNER _IOR(VHOST_VIRTIO, 0x84, __u8)
+ 
  #endif