Lines Matching refs:channel

41 static void vmbus_setevent(struct vmbus_channel *channel)  in vmbus_setevent()  argument
45 if (channel->offermsg.monitor_allocated) { in vmbus_setevent()
47 sync_set_bit(channel->offermsg.child_relid & 31, in vmbus_setevent()
49 (channel->offermsg.child_relid >> 5)); in vmbus_setevent()
54 sync_set_bit(channel->monitor_bit, in vmbus_setevent()
56 [channel->monitor_grp].pending); in vmbus_setevent()
59 vmbus_set_event(channel); in vmbus_setevent()
362 int vmbus_establish_gpadl(struct vmbus_channel *channel, void *kbuffer, in vmbus_establish_gpadl() argument
386 gpadlmsg->child_relid = channel->offermsg.child_relid; in vmbus_establish_gpadl()
438 int vmbus_teardown_gpadl(struct vmbus_channel *channel, u32 gpadl_handle) in vmbus_teardown_gpadl() argument
455 msg->child_relid = channel->offermsg.child_relid; in vmbus_teardown_gpadl()
482 struct vmbus_channel *channel = arg; in reset_channel_cb() local
484 channel->onchannel_callback = NULL; in reset_channel_cb()
487 static int vmbus_close_internal(struct vmbus_channel *channel) in vmbus_close_internal() argument
492 channel->state = CHANNEL_OPEN_STATE; in vmbus_close_internal()
493 channel->sc_creation_callback = NULL; in vmbus_close_internal()
495 if (channel->target_cpu != get_cpu()) { in vmbus_close_internal()
497 smp_call_function_single(channel->target_cpu, reset_channel_cb, in vmbus_close_internal()
498 channel, true); in vmbus_close_internal()
500 reset_channel_cb(channel); in vmbus_close_internal()
506 msg = &channel->close_msg.msg; in vmbus_close_internal()
509 msg->child_relid = channel->offermsg.child_relid; in vmbus_close_internal()
523 if (channel->ringbuffer_gpadlhandle) { in vmbus_close_internal()
524 ret = vmbus_teardown_gpadl(channel, in vmbus_close_internal()
525 channel->ringbuffer_gpadlhandle); in vmbus_close_internal()
537 hv_ringbuffer_cleanup(&channel->outbound); in vmbus_close_internal()
538 hv_ringbuffer_cleanup(&channel->inbound); in vmbus_close_internal()
540 free_pages((unsigned long)channel->ringbuffer_pages, in vmbus_close_internal()
541 get_order(channel->ringbuffer_pagecount * PAGE_SIZE)); in vmbus_close_internal()
546 if (channel->rescind) in vmbus_close_internal()
547 hv_process_channel_removal(channel, in vmbus_close_internal()
548 channel->offermsg.child_relid); in vmbus_close_internal()
555 void vmbus_close(struct vmbus_channel *channel) in vmbus_close() argument
560 if (channel->primary_channel != NULL) { in vmbus_close()
571 list_for_each_safe(cur, tmp, &channel->sc_list) { in vmbus_close()
580 vmbus_close_internal(channel); in vmbus_close()
584 int vmbus_sendpacket_ctl(struct vmbus_channel *channel, void *buffer, in vmbus_sendpacket_ctl() argument
612 ret = hv_ringbuffer_write(&channel->outbound, bufferlist, 3, &signal); in vmbus_sendpacket_ctl()
627 vmbus_setevent(channel); in vmbus_sendpacket_ctl()
647 int vmbus_sendpacket(struct vmbus_channel *channel, void *buffer, in vmbus_sendpacket() argument
651 return vmbus_sendpacket_ctl(channel, buffer, bufferlen, requestid, in vmbus_sendpacket()
663 int vmbus_sendpacket_pagebuffer_ctl(struct vmbus_channel *channel, in vmbus_sendpacket_pagebuffer_ctl() argument
715 ret = hv_ringbuffer_write(&channel->outbound, bufferlist, 3, &signal); in vmbus_sendpacket_pagebuffer_ctl()
730 vmbus_setevent(channel); in vmbus_sendpacket_pagebuffer_ctl()
740 int vmbus_sendpacket_pagebuffer(struct vmbus_channel *channel, in vmbus_sendpacket_pagebuffer() argument
746 return vmbus_sendpacket_pagebuffer_ctl(channel, pagebuffers, pagecount, in vmbus_sendpacket_pagebuffer()
758 int vmbus_sendpacket_mpb_desc(struct vmbus_channel *channel, in vmbus_sendpacket_mpb_desc() argument
788 ret = hv_ringbuffer_write(&channel->outbound, bufferlist, 3, &signal); in vmbus_sendpacket_mpb_desc()
791 vmbus_setevent(channel); in vmbus_sendpacket_mpb_desc()
801 int vmbus_sendpacket_multipagebuffer(struct vmbus_channel *channel, in vmbus_sendpacket_multipagebuffer() argument
851 ret = hv_ringbuffer_write(&channel->outbound, bufferlist, 3, &signal); in vmbus_sendpacket_multipagebuffer()
854 vmbus_setevent(channel); in vmbus_sendpacket_multipagebuffer()
873 int vmbus_recvpacket(struct vmbus_channel *channel, void *buffer, in vmbus_recvpacket() argument
886 ret = hv_ringbuffer_peek(&channel->inbound, &desc, in vmbus_recvpacket()
906 ret = hv_ringbuffer_read(&channel->inbound, buffer, userlen, in vmbus_recvpacket()
910 vmbus_setevent(channel); in vmbus_recvpacket()
919 int vmbus_recvpacket_raw(struct vmbus_channel *channel, void *buffer, in vmbus_recvpacket_raw() argument
932 ret = hv_ringbuffer_peek(&channel->inbound, &desc, in vmbus_recvpacket_raw()
948 ret = hv_ringbuffer_read(&channel->inbound, buffer, packetlen, 0, in vmbus_recvpacket_raw()
952 vmbus_setevent(channel); in vmbus_recvpacket_raw()