Lines Matching refs:newchannel

454 static void vmbus_process_offer(struct vmbus_channel *newchannel)  in vmbus_process_offer()  argument
473 newchannel->offermsg.offer.if_type) && in vmbus_process_offer()
475 newchannel->offermsg.offer.if_instance)) { in vmbus_process_offer()
482 list_add_tail(&newchannel->listentry, in vmbus_process_offer()
491 if (newchannel->offermsg.offer.sub_channel_index != 0) { in vmbus_process_offer()
495 newchannel->primary_channel = channel; in vmbus_process_offer()
497 list_add_tail(&newchannel->sc_list, &channel->sc_list); in vmbus_process_offer()
505 dev_type = hv_get_dev_type(newchannel); in vmbus_process_offer()
507 init_vp_index(newchannel, dev_type); in vmbus_process_offer()
509 if (newchannel->target_cpu != get_cpu()) { in vmbus_process_offer()
511 smp_call_function_single(newchannel->target_cpu, in vmbus_process_offer()
513 newchannel, true); in vmbus_process_offer()
515 percpu_channel_enq(newchannel); in vmbus_process_offer()
524 newchannel->state = CHANNEL_OPEN_STATE; in vmbus_process_offer()
528 = newchannel->primary_channel->device_obj; in vmbus_process_offer()
530 if (vmbus_add_channel_kobj(dev, newchannel)) in vmbus_process_offer()
534 channel->sc_creation_callback(newchannel); in vmbus_process_offer()
535 newchannel->probe_done = true; in vmbus_process_offer()
544 newchannel->device_obj = vmbus_device_create( in vmbus_process_offer()
545 &newchannel->offermsg.offer.if_type, in vmbus_process_offer()
546 &newchannel->offermsg.offer.if_instance, in vmbus_process_offer()
547 newchannel); in vmbus_process_offer()
548 if (!newchannel->device_obj) in vmbus_process_offer()
551 newchannel->device_obj->device_id = dev_type; in vmbus_process_offer()
557 ret = vmbus_device_register(newchannel->device_obj); in vmbus_process_offer()
561 newchannel->offermsg.child_relid); in vmbus_process_offer()
562 kfree(newchannel->device_obj); in vmbus_process_offer()
566 newchannel->probe_done = true; in vmbus_process_offer()
571 list_del(&newchannel->listentry); in vmbus_process_offer()
574 if (newchannel->target_cpu != get_cpu()) { in vmbus_process_offer()
576 smp_call_function_single(newchannel->target_cpu, in vmbus_process_offer()
577 percpu_channel_deq, newchannel, true); in vmbus_process_offer()
579 percpu_channel_deq(newchannel); in vmbus_process_offer()
583 vmbus_release_relid(newchannel->offermsg.child_relid); in vmbus_process_offer()
586 free_channel(newchannel); in vmbus_process_offer()
812 struct vmbus_channel *newchannel; in vmbus_onoffer() local
819 newchannel = alloc_channel(); in vmbus_onoffer()
820 if (!newchannel) { in vmbus_onoffer()
830 newchannel->sig_event = VMBUS_EVENT_CONNECTION_ID; in vmbus_onoffer()
833 newchannel->is_dedicated_interrupt = in vmbus_onoffer()
835 newchannel->sig_event = offer->connection_id; in vmbus_onoffer()
838 memcpy(&newchannel->offermsg, offer, in vmbus_onoffer()
840 newchannel->monitor_grp = (u8)offer->monitorid / 32; in vmbus_onoffer()
841 newchannel->monitor_bit = (u8)offer->monitorid % 32; in vmbus_onoffer()
843 vmbus_process_offer(newchannel); in vmbus_onoffer()