Lines Matching defs:vsock
2 /* loopback transport for vsock using virtio_transport_common APIs
32 struct vsock_loopback *vsock = &the_vsock_loopback;
35 spin_lock_bh(&vsock->pkt_list_lock);
36 list_add_tail(&pkt->list, &vsock->pkt_list);
37 spin_unlock_bh(&vsock->pkt_list_lock);
39 queue_work(vsock->workqueue, &vsock->pkt_work);
46 struct vsock_loopback *vsock = &the_vsock_loopback;
50 spin_lock_bh(&vsock->pkt_list_lock);
51 list_for_each_entry_safe(pkt, n, &vsock->pkt_list, list) {
56 spin_unlock_bh(&vsock->pkt_list_lock);
110 struct vsock_loopback *vsock =
114 spin_lock_bh(&vsock->pkt_list_lock);
115 list_splice_init(&vsock->pkt_list, &pkts);
116 spin_unlock_bh(&vsock->pkt_list_lock);
131 struct vsock_loopback *vsock = &the_vsock_loopback;
134 vsock->workqueue = alloc_workqueue("vsock-loopback", 0, 0);
135 if (!vsock->workqueue)
138 spin_lock_init(&vsock->pkt_list_lock);
139 INIT_LIST_HEAD(&vsock->pkt_list);
140 INIT_WORK(&vsock->pkt_work, vsock_loopback_work);
150 destroy_workqueue(vsock->workqueue);
156 struct vsock_loopback *vsock = &the_vsock_loopback;
161 flush_work(&vsock->pkt_work);
163 spin_lock_bh(&vsock->pkt_list_lock);
164 while (!list_empty(&vsock->pkt_list)) {
165 pkt = list_first_entry(&vsock->pkt_list,
170 spin_unlock_bh(&vsock->pkt_list_lock);
172 destroy_workqueue(vsock->workqueue);
179 MODULE_DESCRIPTION("loopback transport for vsock");