#include <linux/miscdevice.h>
#include <linux/atomic.h>
#include <linux/module.h>
#include <linux/vmalloc.h>
#include <linux/virtio_vsock.h>
#include <linux/hashtable.h>
#include <net/af_vsock.h>
#define VHOST_VSOCK_DEFAULT_HOST_CID 2
VHOST_VSOCK_FEATURES = VHOST_FEATURES,
static DEFINE_MUTEX(vhost_vsock_mutex);
static DEFINE_READ_MOSTLY_HASHTABLE(vhost_vsock_hash, 8);
struct vhost_virtqueue vqs[2];
struct vhost_work send_pkt_work;
spinlock_t send_pkt_list_lock;
struct list_head send_pkt_list;
static u32 vhost_transport_get_local_cid(void)
return VHOST_VSOCK_DEFAULT_HOST_CID;
static struct vhost_vsock *vhost_vsock_get(u32 guest_cid)
struct vhost_vsock *vsock;
hash_for_each_possible_rcu(vhost_vsock_hash, vsock, hash, guest_cid) {
u32 other_cid = vsock->guest_cid;