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