Lines Matching refs:vmbus_connection
29 struct vmbus_connection vmbus_connection = {
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);
102 vmbus_connection.msg_conn_id = VMBUS_MESSAGE_CONNECTION_ID_4;
104 msg->interrupt_page = virt_to_phys(vmbus_connection.int_page);
105 vmbus_connection.msg_conn_id = VMBUS_MESSAGE_CONNECTION_ID;
112 msg->monitor_page1 = virt_to_phys(vmbus_connection.monitor_pages[0]) |
114 msg->monitor_page2 = virt_to_phys(vmbus_connection.monitor_pages[1]) |
123 spin_lock_irqsave(&vmbus_connection.channelmsg_lock, flags);
125 &vmbus_connection.chn_msg_list);
127 spin_unlock_irqrestore(&vmbus_connection.channelmsg_lock, flags);
136 spin_lock_irqsave(&vmbus_connection.channelmsg_lock, flags);
138 spin_unlock_irqrestore(&vmbus_connection.channelmsg_lock,
146 spin_lock_irqsave(&vmbus_connection.channelmsg_lock, flags);
148 spin_unlock_irqrestore(&vmbus_connection.channelmsg_lock, flags);
152 vmbus_connection.conn_state = CONNECTED;
155 vmbus_connection.msg_conn_id =
174 vmbus_connection.conn_state = CONNECTING;
175 vmbus_connection.work_queue = create_workqueue("hv_vmbus_con");
176 if (!vmbus_connection.work_queue) {
181 vmbus_connection.rescind_work_queue =
183 if (!vmbus_connection.rescind_work_queue) {
187 vmbus_connection.ignore_any_offer_msg = false;
189 vmbus_connection.handle_primary_chan_wq =
191 if (!vmbus_connection.handle_primary_chan_wq) {
196 vmbus_connection.handle_sub_chan_wq =
198 if (!vmbus_connection.handle_sub_chan_wq) {
203 INIT_LIST_HEAD(&vmbus_connection.chn_msg_list);
204 spin_lock_init(&vmbus_connection.channelmsg_lock);
206 INIT_LIST_HEAD(&vmbus_connection.chn_list);
207 mutex_init(&vmbus_connection.channel_mutex);
213 vmbus_connection.int_page = hv_alloc_hyperv_zeroed_page();
214 if (vmbus_connection.int_page == NULL) {
219 vmbus_connection.recv_int_page = vmbus_connection.int_page;
220 vmbus_connection.send_int_page =
221 (void *)((unsigned long)vmbus_connection.int_page +
228 vmbus_connection.monitor_pages[0] = hv_alloc_hyperv_page();
229 vmbus_connection.monitor_pages[1] = hv_alloc_hyperv_page();
230 if ((vmbus_connection.monitor_pages[0] == NULL) ||
231 (vmbus_connection.monitor_pages[1] == NULL)) {
237 vmbus_connection.monitor_pages[0], 1);
239 vmbus_connection.monitor_pages[1], 1);
247 memset(vmbus_connection.monitor_pages[0], 0x00, HV_HYP_PAGE_SIZE);
248 memset(vmbus_connection.monitor_pages[1], 0x00, HV_HYP_PAGE_SIZE);
279 if (vmbus_connection.conn_state == CONNECTED)
294 vmbus_connection.channels = kcalloc(MAX_CHANNEL_RELIDS,
297 if (vmbus_connection.channels == NULL) {
308 vmbus_connection.conn_state = DISCONNECTED;
323 if (vmbus_connection.handle_sub_chan_wq)
324 destroy_workqueue(vmbus_connection.handle_sub_chan_wq);
326 if (vmbus_connection.handle_primary_chan_wq)
327 destroy_workqueue(vmbus_connection.handle_primary_chan_wq);
329 if (vmbus_connection.rescind_work_queue)
330 destroy_workqueue(vmbus_connection.rescind_work_queue);
332 if (vmbus_connection.work_queue)
333 destroy_workqueue(vmbus_connection.work_queue);
335 if (vmbus_connection.int_page) {
336 hv_free_hyperv_page(vmbus_connection.int_page);
337 vmbus_connection.int_page = NULL;
340 set_memory_encrypted((unsigned long)vmbus_connection.monitor_pages[0], 1);
341 set_memory_encrypted((unsigned long)vmbus_connection.monitor_pages[1], 1);
343 hv_free_hyperv_page(vmbus_connection.monitor_pages[0]);
344 hv_free_hyperv_page(vmbus_connection.monitor_pages[1]);
345 vmbus_connection.monitor_pages[0] = NULL;
346 vmbus_connection.monitor_pages[1] = NULL;
355 if (vmbus_connection.channels == NULL) {
361 return READ_ONCE(vmbus_connection.channels[relid]);
419 conn_id.u.id = vmbus_connection.msg_conn_id;