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()
371 int vmbus_establish_gpadl(struct vmbus_channel *channel, void *kbuffer, in vmbus_establish_gpadl() argument
395 gpadlmsg->child_relid = channel->offermsg.child_relid; in vmbus_establish_gpadl()
447 int vmbus_teardown_gpadl(struct vmbus_channel *channel, u32 gpadl_handle) in vmbus_teardown_gpadl() argument
464 msg->child_relid = channel->offermsg.child_relid; in vmbus_teardown_gpadl()
491 struct vmbus_channel *channel = arg; in reset_channel_cb() local
493 channel->onchannel_callback = NULL; in reset_channel_cb()
496 static int vmbus_close_internal(struct vmbus_channel *channel) in vmbus_close_internal() argument
501 channel->state = CHANNEL_OPEN_STATE; in vmbus_close_internal()
502 channel->sc_creation_callback = NULL; in vmbus_close_internal()
504 if (channel->target_cpu != get_cpu()) { in vmbus_close_internal()
506 smp_call_function_single(channel->target_cpu, reset_channel_cb, in vmbus_close_internal()
507 channel, true); in vmbus_close_internal()
509 reset_channel_cb(channel); in vmbus_close_internal()
515 msg = &channel->close_msg.msg; in vmbus_close_internal()
518 msg->child_relid = channel->offermsg.child_relid; in vmbus_close_internal()
532 if (channel->ringbuffer_gpadlhandle) { in vmbus_close_internal()
533 ret = vmbus_teardown_gpadl(channel, in vmbus_close_internal()
534 channel->ringbuffer_gpadlhandle); in vmbus_close_internal()
546 hv_ringbuffer_cleanup(&channel->outbound); in vmbus_close_internal()
547 hv_ringbuffer_cleanup(&channel->inbound); in vmbus_close_internal()
549 free_pages((unsigned long)channel->ringbuffer_pages, in vmbus_close_internal()
550 get_order(channel->ringbuffer_pagecount * PAGE_SIZE)); in vmbus_close_internal()
555 if (channel->rescind) in vmbus_close_internal()
556 hv_process_channel_removal(channel, in vmbus_close_internal()
557 channel->offermsg.child_relid); in vmbus_close_internal()
564 void vmbus_close(struct vmbus_channel *channel) in vmbus_close() argument
569 if (channel->primary_channel != NULL) { in vmbus_close()
580 list_for_each_safe(cur, tmp, &channel->sc_list) { in vmbus_close()
589 vmbus_close_internal(channel); in vmbus_close()
593 int vmbus_sendpacket_ctl(struct vmbus_channel *channel, void *buffer, in vmbus_sendpacket_ctl() argument
622 ret = hv_ringbuffer_write(&channel->outbound, bufferlist, num_vecs, in vmbus_sendpacket_ctl()
641 if (channel->signal_policy) in vmbus_sendpacket_ctl()
647 vmbus_setevent(channel); in vmbus_sendpacket_ctl()
667 int vmbus_sendpacket(struct vmbus_channel *channel, void *buffer, in vmbus_sendpacket() argument
671 return vmbus_sendpacket_ctl(channel, buffer, bufferlen, requestid, in vmbus_sendpacket()
683 int vmbus_sendpacket_pagebuffer_ctl(struct vmbus_channel *channel, in vmbus_sendpacket_pagebuffer_ctl() argument
735 ret = hv_ringbuffer_write(&channel->outbound, bufferlist, 3, &signal); in vmbus_sendpacket_pagebuffer_ctl()
753 if (channel->signal_policy) in vmbus_sendpacket_pagebuffer_ctl()
759 vmbus_setevent(channel); in vmbus_sendpacket_pagebuffer_ctl()
769 int vmbus_sendpacket_pagebuffer(struct vmbus_channel *channel, in vmbus_sendpacket_pagebuffer() argument
775 return vmbus_sendpacket_pagebuffer_ctl(channel, pagebuffers, pagecount, in vmbus_sendpacket_pagebuffer()
787 int vmbus_sendpacket_mpb_desc(struct vmbus_channel *channel, in vmbus_sendpacket_mpb_desc() argument
817 ret = hv_ringbuffer_write(&channel->outbound, bufferlist, 3, &signal); in vmbus_sendpacket_mpb_desc()
820 vmbus_setevent(channel); in vmbus_sendpacket_mpb_desc()
830 int vmbus_sendpacket_multipagebuffer(struct vmbus_channel *channel, in vmbus_sendpacket_multipagebuffer() argument
880 ret = hv_ringbuffer_write(&channel->outbound, bufferlist, 3, &signal); in vmbus_sendpacket_multipagebuffer()
883 vmbus_setevent(channel); in vmbus_sendpacket_multipagebuffer()
902 int vmbus_recvpacket(struct vmbus_channel *channel, void *buffer, in vmbus_recvpacket() argument
915 ret = hv_ringbuffer_peek(&channel->inbound, &desc, in vmbus_recvpacket()
935 ret = hv_ringbuffer_read(&channel->inbound, buffer, userlen, in vmbus_recvpacket()
939 vmbus_setevent(channel); in vmbus_recvpacket()
948 int vmbus_recvpacket_raw(struct vmbus_channel *channel, void *buffer, in vmbus_recvpacket_raw() argument
961 ret = hv_ringbuffer_peek(&channel->inbound, &desc, in vmbus_recvpacket_raw()
977 ret = hv_ringbuffer_read(&channel->inbound, buffer, packetlen, 0, in vmbus_recvpacket_raw()
981 vmbus_setevent(channel); in vmbus_recvpacket_raw()