Lines Matching refs:newchannel

227 static void vmbus_process_offer(struct vmbus_channel *newchannel)  in vmbus_process_offer()  argument
239 newchannel->offermsg.offer.if_type) && in vmbus_process_offer()
241 newchannel->offermsg.offer.if_instance)) { in vmbus_process_offer()
248 list_add_tail(&newchannel->listentry, in vmbus_process_offer()
256 if (newchannel->target_cpu != get_cpu()) { in vmbus_process_offer()
258 smp_call_function_single(newchannel->target_cpu, in vmbus_process_offer()
260 newchannel, true); in vmbus_process_offer()
262 percpu_channel_enq(newchannel); in vmbus_process_offer()
270 if (newchannel->offermsg.offer.sub_channel_index != 0) { in vmbus_process_offer()
274 newchannel->primary_channel = channel; in vmbus_process_offer()
276 list_add_tail(&newchannel->sc_list, &channel->sc_list); in vmbus_process_offer()
279 if (newchannel->target_cpu != get_cpu()) { in vmbus_process_offer()
281 smp_call_function_single(newchannel->target_cpu, in vmbus_process_offer()
283 newchannel, true); in vmbus_process_offer()
285 percpu_channel_enq(newchannel); in vmbus_process_offer()
289 newchannel->state = CHANNEL_OPEN_STATE; in vmbus_process_offer()
292 channel->sc_creation_callback(newchannel); in vmbus_process_offer()
305 newchannel->state = CHANNEL_OPEN_STATE; in vmbus_process_offer()
312 newchannel->device_obj = vmbus_device_create( in vmbus_process_offer()
313 &newchannel->offermsg.offer.if_type, in vmbus_process_offer()
314 &newchannel->offermsg.offer.if_instance, in vmbus_process_offer()
315 newchannel); in vmbus_process_offer()
316 if (!newchannel->device_obj) in vmbus_process_offer()
324 if (vmbus_device_register(newchannel->device_obj) != 0) { in vmbus_process_offer()
326 newchannel->offermsg.child_relid); in vmbus_process_offer()
327 kfree(newchannel->device_obj); in vmbus_process_offer()
334 list_del(&newchannel->listentry); in vmbus_process_offer()
337 if (newchannel->target_cpu != get_cpu()) { in vmbus_process_offer()
339 smp_call_function_single(newchannel->target_cpu, in vmbus_process_offer()
340 percpu_channel_deq, newchannel, true); in vmbus_process_offer()
342 percpu_channel_deq(newchannel); in vmbus_process_offer()
347 free_channel(newchannel); in vmbus_process_offer()
426 struct vmbus_channel *newchannel; in vmbus_onoffer() local
431 newchannel = alloc_channel(); in vmbus_onoffer()
432 if (!newchannel) { in vmbus_onoffer()
442 newchannel->batched_reading = true; in vmbus_onoffer()
447 newchannel->sig_event = (struct hv_input_signal_event *) in vmbus_onoffer()
449 &newchannel->sig_buf, in vmbus_onoffer()
452 newchannel->sig_event->connectionid.asu32 = 0; in vmbus_onoffer()
453 newchannel->sig_event->connectionid.u.id = VMBUS_EVENT_CONNECTION_ID; in vmbus_onoffer()
454 newchannel->sig_event->flag_number = 0; in vmbus_onoffer()
455 newchannel->sig_event->rsvdz = 0; in vmbus_onoffer()
458 newchannel->is_dedicated_interrupt = in vmbus_onoffer()
460 newchannel->sig_event->connectionid.u.id = in vmbus_onoffer()
464 init_vp_index(newchannel, &offer->offer.if_type); in vmbus_onoffer()
466 memcpy(&newchannel->offermsg, offer, in vmbus_onoffer()
468 newchannel->monitor_grp = (u8)offer->monitorid / 32; in vmbus_onoffer()
469 newchannel->monitor_bit = (u8)offer->monitorid % 32; in vmbus_onoffer()
471 vmbus_process_offer(newchannel); in vmbus_onoffer()