Lines Matching refs:vmbus_connection
29 struct vmbus_connection vmbus_connection = { variable
32 vmbus_connection.unload_event),
36 vmbus_connection.ready_for_suspend_event),
38 vmbus_connection.ready_for_resume_event),
40 EXPORT_SYMBOL_GPL(vmbus_connection);
101 vmbus_connection.msg_conn_id = VMBUS_MESSAGE_CONNECTION_ID_4; in vmbus_negotiate_version()
103 msg->interrupt_page = virt_to_phys(vmbus_connection.int_page); in vmbus_negotiate_version()
104 vmbus_connection.msg_conn_id = VMBUS_MESSAGE_CONNECTION_ID; in vmbus_negotiate_version()
107 msg->monitor_page1 = vmbus_connection.monitor_pages_pa[0]; in vmbus_negotiate_version()
108 msg->monitor_page2 = vmbus_connection.monitor_pages_pa[1]; in vmbus_negotiate_version()
116 spin_lock_irqsave(&vmbus_connection.channelmsg_lock, flags); in vmbus_negotiate_version()
118 &vmbus_connection.chn_msg_list); in vmbus_negotiate_version()
120 spin_unlock_irqrestore(&vmbus_connection.channelmsg_lock, flags); in vmbus_negotiate_version()
129 spin_lock_irqsave(&vmbus_connection.channelmsg_lock, flags); in vmbus_negotiate_version()
131 spin_unlock_irqrestore(&vmbus_connection.channelmsg_lock, in vmbus_negotiate_version()
139 spin_lock_irqsave(&vmbus_connection.channelmsg_lock, flags); in vmbus_negotiate_version()
141 spin_unlock_irqrestore(&vmbus_connection.channelmsg_lock, flags); in vmbus_negotiate_version()
145 vmbus_connection.conn_state = CONNECTED; in vmbus_negotiate_version()
148 vmbus_connection.msg_conn_id = in vmbus_negotiate_version()
167 vmbus_connection.conn_state = CONNECTING; in vmbus_connect()
168 vmbus_connection.work_queue = create_workqueue("hv_vmbus_con"); in vmbus_connect()
169 if (!vmbus_connection.work_queue) { in vmbus_connect()
174 vmbus_connection.rescind_work_queue = in vmbus_connect()
176 if (!vmbus_connection.rescind_work_queue) { in vmbus_connect()
180 vmbus_connection.ignore_any_offer_msg = false; in vmbus_connect()
182 vmbus_connection.handle_primary_chan_wq = in vmbus_connect()
184 if (!vmbus_connection.handle_primary_chan_wq) { in vmbus_connect()
189 vmbus_connection.handle_sub_chan_wq = in vmbus_connect()
191 if (!vmbus_connection.handle_sub_chan_wq) { in vmbus_connect()
196 INIT_LIST_HEAD(&vmbus_connection.chn_msg_list); in vmbus_connect()
197 spin_lock_init(&vmbus_connection.channelmsg_lock); in vmbus_connect()
199 INIT_LIST_HEAD(&vmbus_connection.chn_list); in vmbus_connect()
200 mutex_init(&vmbus_connection.channel_mutex); in vmbus_connect()
206 vmbus_connection.int_page = in vmbus_connect()
208 if (vmbus_connection.int_page == NULL) { in vmbus_connect()
213 vmbus_connection.recv_int_page = vmbus_connection.int_page; in vmbus_connect()
214 vmbus_connection.send_int_page = in vmbus_connect()
215 (void *)((unsigned long)vmbus_connection.int_page + in vmbus_connect()
222 vmbus_connection.monitor_pages[0] = (void *)hv_alloc_hyperv_zeroed_page(); in vmbus_connect()
223 vmbus_connection.monitor_pages[1] = (void *)hv_alloc_hyperv_zeroed_page(); in vmbus_connect()
224 if ((vmbus_connection.monitor_pages[0] == NULL) || in vmbus_connect()
225 (vmbus_connection.monitor_pages[1] == NULL)) { in vmbus_connect()
230 vmbus_connection.monitor_pages_original[0] in vmbus_connect()
231 = vmbus_connection.monitor_pages[0]; in vmbus_connect()
232 vmbus_connection.monitor_pages_original[1] in vmbus_connect()
233 = vmbus_connection.monitor_pages[1]; in vmbus_connect()
234 vmbus_connection.monitor_pages_pa[0] in vmbus_connect()
235 = virt_to_phys(vmbus_connection.monitor_pages[0]); in vmbus_connect()
236 vmbus_connection.monitor_pages_pa[1] in vmbus_connect()
237 = virt_to_phys(vmbus_connection.monitor_pages[1]); in vmbus_connect()
241 vmbus_connection.monitor_pages[0], in vmbus_connect()
244 vmbus_connection.monitor_pages[1], in vmbus_connect()
254 vmbus_connection.monitor_pages_pa[0] += in vmbus_connect()
256 vmbus_connection.monitor_pages_pa[1] += in vmbus_connect()
259 vmbus_connection.monitor_pages[0] in vmbus_connect()
260 = memremap(vmbus_connection.monitor_pages_pa[0], in vmbus_connect()
263 if (!vmbus_connection.monitor_pages[0]) { in vmbus_connect()
268 vmbus_connection.monitor_pages[1] in vmbus_connect()
269 = memremap(vmbus_connection.monitor_pages_pa[1], in vmbus_connect()
272 if (!vmbus_connection.monitor_pages[1]) { in vmbus_connect()
282 memset(vmbus_connection.monitor_pages[0], 0x00, in vmbus_connect()
284 memset(vmbus_connection.monitor_pages[1], 0x00, in vmbus_connect()
318 if (vmbus_connection.conn_state == CONNECTED) in vmbus_connect()
333 vmbus_connection.channels = kcalloc(MAX_CHANNEL_RELIDS, in vmbus_connect()
336 if (vmbus_connection.channels == NULL) { in vmbus_connect()
347 vmbus_connection.conn_state = DISCONNECTED; in vmbus_connect()
362 if (vmbus_connection.handle_sub_chan_wq) in vmbus_disconnect()
363 destroy_workqueue(vmbus_connection.handle_sub_chan_wq); in vmbus_disconnect()
365 if (vmbus_connection.handle_primary_chan_wq) in vmbus_disconnect()
366 destroy_workqueue(vmbus_connection.handle_primary_chan_wq); in vmbus_disconnect()
368 if (vmbus_connection.rescind_work_queue) in vmbus_disconnect()
369 destroy_workqueue(vmbus_connection.rescind_work_queue); in vmbus_disconnect()
371 if (vmbus_connection.work_queue) in vmbus_disconnect()
372 destroy_workqueue(vmbus_connection.work_queue); in vmbus_disconnect()
374 if (vmbus_connection.int_page) { in vmbus_disconnect()
375 hv_free_hyperv_page((unsigned long)vmbus_connection.int_page); in vmbus_disconnect()
376 vmbus_connection.int_page = NULL; in vmbus_disconnect()
385 memunmap(vmbus_connection.monitor_pages[0]); in vmbus_disconnect()
386 memunmap(vmbus_connection.monitor_pages[1]); in vmbus_disconnect()
389 vmbus_connection.monitor_pages_original[0], in vmbus_disconnect()
392 vmbus_connection.monitor_pages_original[1], in vmbus_disconnect()
397 vmbus_connection.monitor_pages_original[0]); in vmbus_disconnect()
399 vmbus_connection.monitor_pages_original[1]); in vmbus_disconnect()
400 vmbus_connection.monitor_pages_original[0] = in vmbus_disconnect()
401 vmbus_connection.monitor_pages[0] = NULL; in vmbus_disconnect()
402 vmbus_connection.monitor_pages_original[1] = in vmbus_disconnect()
403 vmbus_connection.monitor_pages[1] = NULL; in vmbus_disconnect()
414 return READ_ONCE(vmbus_connection.channels[relid]); in relid2channel()
472 conn_id.u.id = vmbus_connection.msg_conn_id; in vmbus_post_msg()