Lines Matching refs:vmbus_connection
38 struct vmbus_connection vmbus_connection = { variable
80 msg->interrupt_page = virt_to_phys(vmbus_connection.int_page); in vmbus_negotiate_version()
81 msg->monitor_page1 = virt_to_phys(vmbus_connection.monitor_pages[0]); in vmbus_negotiate_version()
82 msg->monitor_page2 = virt_to_phys(vmbus_connection.monitor_pages[1]); in vmbus_negotiate_version()
92 spin_lock_irqsave(&vmbus_connection.channelmsg_lock, flags); in vmbus_negotiate_version()
94 &vmbus_connection.chn_msg_list); in vmbus_negotiate_version()
96 spin_unlock_irqrestore(&vmbus_connection.channelmsg_lock, flags); in vmbus_negotiate_version()
101 spin_lock_irqsave(&vmbus_connection.channelmsg_lock, flags); in vmbus_negotiate_version()
103 spin_unlock_irqrestore(&vmbus_connection.channelmsg_lock, in vmbus_negotiate_version()
111 spin_lock_irqsave(&vmbus_connection.channelmsg_lock, flags); in vmbus_negotiate_version()
113 spin_unlock_irqrestore(&vmbus_connection.channelmsg_lock, flags); in vmbus_negotiate_version()
117 vmbus_connection.conn_state = CONNECTED; in vmbus_negotiate_version()
135 vmbus_connection.conn_state = CONNECTING; in vmbus_connect()
136 vmbus_connection.work_queue = create_workqueue("hv_vmbus_con"); in vmbus_connect()
137 if (!vmbus_connection.work_queue) { in vmbus_connect()
142 INIT_LIST_HEAD(&vmbus_connection.chn_msg_list); in vmbus_connect()
143 spin_lock_init(&vmbus_connection.channelmsg_lock); in vmbus_connect()
145 INIT_LIST_HEAD(&vmbus_connection.chn_list); in vmbus_connect()
146 spin_lock_init(&vmbus_connection.channel_lock); in vmbus_connect()
152 vmbus_connection.int_page = in vmbus_connect()
154 if (vmbus_connection.int_page == NULL) { in vmbus_connect()
159 vmbus_connection.recv_int_page = vmbus_connection.int_page; in vmbus_connect()
160 vmbus_connection.send_int_page = in vmbus_connect()
161 (void *)((unsigned long)vmbus_connection.int_page + in vmbus_connect()
168 vmbus_connection.monitor_pages[0] = (void *)__get_free_pages((GFP_KERNEL|__GFP_ZERO), 0); in vmbus_connect()
169 vmbus_connection.monitor_pages[1] = (void *)__get_free_pages((GFP_KERNEL|__GFP_ZERO), 0); in vmbus_connect()
170 if ((vmbus_connection.monitor_pages[0] == NULL) || in vmbus_connect()
171 (vmbus_connection.monitor_pages[1] == NULL)) { in vmbus_connect()
198 if (vmbus_connection.conn_state == CONNECTED) in vmbus_connect()
220 vmbus_connection.conn_state = DISCONNECTED; in vmbus_connect()
230 if (vmbus_connection.work_queue) { in vmbus_disconnect()
231 drain_workqueue(vmbus_connection.work_queue); in vmbus_disconnect()
232 destroy_workqueue(vmbus_connection.work_queue); in vmbus_disconnect()
235 if (vmbus_connection.int_page) { in vmbus_disconnect()
236 free_pages((unsigned long)vmbus_connection.int_page, 0); in vmbus_disconnect()
237 vmbus_connection.int_page = NULL; in vmbus_disconnect()
240 free_pages((unsigned long)vmbus_connection.monitor_pages[0], 0); in vmbus_disconnect()
241 free_pages((unsigned long)vmbus_connection.monitor_pages[1], 0); in vmbus_disconnect()
242 vmbus_connection.monitor_pages[0] = NULL; in vmbus_disconnect()
243 vmbus_connection.monitor_pages[1] = NULL; in vmbus_disconnect()
281 spin_lock_irqsave(&vmbus_connection.channel_lock, flags); in relid2channel()
282 list_for_each_entry(channel, &vmbus_connection.chn_list, listentry) { in relid2channel()
300 spin_unlock_irqrestore(&vmbus_connection.channel_lock, flags); in relid2channel()
377 recv_int_page = vmbus_connection.recv_int_page; in vmbus_on_event()
475 (unsigned long *)vmbus_connection.send_int_page + in vmbus_set_event()