Lines Matching refs:newchannel
164 int vmbus_alloc_ring(struct vmbus_channel *newchannel, in vmbus_alloc_ring() argument
175 page = alloc_pages_node(cpu_to_node(newchannel->target_cpu), in vmbus_alloc_ring()
184 newchannel->ringbuffer_page = page; in vmbus_alloc_ring()
185 newchannel->ringbuffer_pagecount = (send_size + recv_size) >> PAGE_SHIFT; in vmbus_alloc_ring()
186 newchannel->ringbuffer_send_offset = send_size >> PAGE_SHIFT; in vmbus_alloc_ring()
506 static int __vmbus_open(struct vmbus_channel *newchannel, in __vmbus_open() argument
512 struct page *page = newchannel->ringbuffer_page; in __vmbus_open()
520 send_pages = newchannel->ringbuffer_send_offset; in __vmbus_open()
521 recv_pages = newchannel->ringbuffer_pagecount - send_pages; in __vmbus_open()
523 if (newchannel->state != CHANNEL_OPEN_STATE) in __vmbus_open()
526 newchannel->state = CHANNEL_OPENING_STATE; in __vmbus_open()
527 newchannel->onchannel_callback = onchannelcallback; in __vmbus_open()
528 newchannel->channel_callback_context = context; in __vmbus_open()
530 err = hv_ringbuffer_init(&newchannel->outbound, page, send_pages); in __vmbus_open()
534 err = hv_ringbuffer_init(&newchannel->inbound, in __vmbus_open()
540 newchannel->ringbuffer_gpadlhandle = 0; in __vmbus_open()
542 err = __vmbus_establish_gpadl(newchannel, HV_GPADL_RING, in __vmbus_open()
543 page_address(newchannel->ringbuffer_page), in __vmbus_open()
545 newchannel->ringbuffer_send_offset << PAGE_SHIFT, in __vmbus_open()
546 &newchannel->ringbuffer_gpadlhandle); in __vmbus_open()
560 open_info->waiting_channel = newchannel; in __vmbus_open()
564 open_msg->openid = newchannel->offermsg.child_relid; in __vmbus_open()
565 open_msg->child_relid = newchannel->offermsg.child_relid; in __vmbus_open()
566 open_msg->ringbuffer_gpadlhandle = newchannel->ringbuffer_gpadlhandle; in __vmbus_open()
574 open_msg->target_vp = hv_cpu_number_to_vp_number(newchannel->target_cpu); in __vmbus_open()
584 if (newchannel->rescind) { in __vmbus_open()
603 if (newchannel->rescind) { in __vmbus_open()
613 newchannel->state = CHANNEL_OPENED_STATE; in __vmbus_open()
624 vmbus_teardown_gpadl(newchannel, newchannel->ringbuffer_gpadlhandle); in __vmbus_open()
625 newchannel->ringbuffer_gpadlhandle = 0; in __vmbus_open()
627 hv_ringbuffer_cleanup(&newchannel->outbound); in __vmbus_open()
628 hv_ringbuffer_cleanup(&newchannel->inbound); in __vmbus_open()
629 newchannel->state = CHANNEL_OPEN_STATE; in __vmbus_open()
636 int vmbus_connect_ring(struct vmbus_channel *newchannel, in vmbus_connect_ring() argument
639 return __vmbus_open(newchannel, NULL, 0, onchannelcallback, context); in vmbus_connect_ring()
646 int vmbus_open(struct vmbus_channel *newchannel, in vmbus_open() argument
653 err = vmbus_alloc_ring(newchannel, send_ringbuffer_size, in vmbus_open()
658 err = __vmbus_open(newchannel, userdata, userdatalen, in vmbus_open()
661 vmbus_free_ring(newchannel); in vmbus_open()