Lines Matching full:part
305 struct xpc_partition *part; in xpc_process_activate_IRQ_rcvd_uv() local
312 part = &xpc_partitions[partid]; in xpc_process_activate_IRQ_rcvd_uv()
314 if (part->sn.uv.act_state_req == 0) in xpc_process_activate_IRQ_rcvd_uv()
320 act_state_req = part->sn.uv.act_state_req; in xpc_process_activate_IRQ_rcvd_uv()
321 part->sn.uv.act_state_req = 0; in xpc_process_activate_IRQ_rcvd_uv()
325 if (part->act_state == XPC_P_AS_INACTIVE) in xpc_process_activate_IRQ_rcvd_uv()
326 xpc_activate_partition(part); in xpc_process_activate_IRQ_rcvd_uv()
327 else if (part->act_state == XPC_P_AS_DEACTIVATING) in xpc_process_activate_IRQ_rcvd_uv()
328 XPC_DEACTIVATE_PARTITION(part, xpReactivating); in xpc_process_activate_IRQ_rcvd_uv()
331 if (part->act_state == XPC_P_AS_INACTIVE) in xpc_process_activate_IRQ_rcvd_uv()
332 xpc_activate_partition(part); in xpc_process_activate_IRQ_rcvd_uv()
334 XPC_DEACTIVATE_PARTITION(part, xpReactivating); in xpc_process_activate_IRQ_rcvd_uv()
337 XPC_DEACTIVATE_PARTITION(part, part->sn.uv.reason); in xpc_process_activate_IRQ_rcvd_uv()
352 xpc_handle_activate_mq_msg_uv(struct xpc_partition *part, in xpc_handle_activate_mq_msg_uv() argument
358 struct xpc_partition_uv *part_uv = &part->sn.uv; in xpc_handle_activate_mq_msg_uv()
383 part->remote_rp_pa = msg->rp_gpa; /* !!! _pa is _gpa */ in xpc_handle_activate_mq_msg_uv()
384 part->remote_rp_ts_jiffies = msg_hdr->rp_ts_jiffies; in xpc_handle_activate_mq_msg_uv()
425 args = &part->remote_openclose_args[msg->ch_number]; in xpc_handle_activate_mq_msg_uv()
428 spin_lock_irqsave(&part->chctl_lock, irq_flags); in xpc_handle_activate_mq_msg_uv()
429 part->chctl.flags[msg->ch_number] |= XPC_CHCTL_CLOSEREQUEST; in xpc_handle_activate_mq_msg_uv()
430 spin_unlock_irqrestore(&part->chctl_lock, irq_flags); in xpc_handle_activate_mq_msg_uv()
432 xpc_wakeup_channel_mgr(part); in xpc_handle_activate_mq_msg_uv()
445 spin_lock_irqsave(&part->chctl_lock, irq_flags); in xpc_handle_activate_mq_msg_uv()
446 part->chctl.flags[msg->ch_number] |= XPC_CHCTL_CLOSEREPLY; in xpc_handle_activate_mq_msg_uv()
447 spin_unlock_irqrestore(&part->chctl_lock, irq_flags); in xpc_handle_activate_mq_msg_uv()
449 xpc_wakeup_channel_mgr(part); in xpc_handle_activate_mq_msg_uv()
461 args = &part->remote_openclose_args[msg->ch_number]; in xpc_handle_activate_mq_msg_uv()
465 spin_lock_irqsave(&part->chctl_lock, irq_flags); in xpc_handle_activate_mq_msg_uv()
466 part->chctl.flags[msg->ch_number] |= XPC_CHCTL_OPENREQUEST; in xpc_handle_activate_mq_msg_uv()
467 spin_unlock_irqrestore(&part->chctl_lock, irq_flags); in xpc_handle_activate_mq_msg_uv()
469 xpc_wakeup_channel_mgr(part); in xpc_handle_activate_mq_msg_uv()
480 args = &part->remote_openclose_args[msg->ch_number]; in xpc_handle_activate_mq_msg_uv()
485 spin_lock_irqsave(&part->chctl_lock, irq_flags); in xpc_handle_activate_mq_msg_uv()
486 part->chctl.flags[msg->ch_number] |= XPC_CHCTL_OPENREPLY; in xpc_handle_activate_mq_msg_uv()
487 spin_unlock_irqrestore(&part->chctl_lock, irq_flags); in xpc_handle_activate_mq_msg_uv()
489 xpc_wakeup_channel_mgr(part); in xpc_handle_activate_mq_msg_uv()
500 spin_lock_irqsave(&part->chctl_lock, irq_flags); in xpc_handle_activate_mq_msg_uv()
501 part->chctl.flags[msg->ch_number] |= XPC_CHCTL_OPENCOMPLETE; in xpc_handle_activate_mq_msg_uv()
502 spin_unlock_irqrestore(&part->chctl_lock, irq_flags); in xpc_handle_activate_mq_msg_uv()
504 xpc_wakeup_channel_mgr(part); in xpc_handle_activate_mq_msg_uv()
521 "from partition=%d\n", msg_hdr->type, XPC_PARTID(part)); in xpc_handle_activate_mq_msg_uv()
535 if (msg_hdr->rp_ts_jiffies != part->remote_rp_ts_jiffies && in xpc_handle_activate_mq_msg_uv()
536 part->remote_rp_ts_jiffies != 0) { in xpc_handle_activate_mq_msg_uv()
556 struct xpc_partition *part; in xpc_handle_activate_IRQ_uv() local
571 part = &xpc_partitions[partid]; in xpc_handle_activate_IRQ_uv()
573 part_referenced = xpc_part_ref(part); in xpc_handle_activate_IRQ_uv()
574 xpc_handle_activate_mq_msg_uv(part, msg_hdr, in xpc_handle_activate_IRQ_uv()
578 xpc_part_deref(part); in xpc_handle_activate_IRQ_uv()
605 xpc_send_activate_IRQ_uv(struct xpc_partition *part, void *msg, size_t msg_size, in xpc_send_activate_IRQ_uv() argument
609 struct xpc_partition_uv *part_uv = &part->sn.uv; in xpc_send_activate_IRQ_uv()
618 msg_hdr->act_state = part->act_state; in xpc_send_activate_IRQ_uv()
661 xpc_send_activate_IRQ_part_uv(struct xpc_partition *part, void *msg, in xpc_send_activate_IRQ_part_uv() argument
666 ret = xpc_send_activate_IRQ_uv(part, msg, msg_size, msg_type); in xpc_send_activate_IRQ_part_uv()
668 XPC_DEACTIVATE_PARTITION(part, ret); in xpc_send_activate_IRQ_part_uv()
675 struct xpc_partition *part = &xpc_partitions[ch->partid]; in xpc_send_activate_IRQ_ch_uv() local
678 ret = xpc_send_activate_IRQ_uv(part, msg, msg_size, msg_type); in xpc_send_activate_IRQ_ch_uv()
683 XPC_DEACTIVATE_PARTITION(part, ret); in xpc_send_activate_IRQ_ch_uv()
691 xpc_send_local_activate_IRQ_uv(struct xpc_partition *part, int act_state_req) in xpc_send_local_activate_IRQ_uv() argument
694 struct xpc_partition_uv *part_uv = &part->sn.uv; in xpc_send_local_activate_IRQ_uv()
790 xpc_get_remote_heartbeat_uv(struct xpc_partition *part) in xpc_get_remote_heartbeat_uv() argument
792 struct xpc_partition_uv *part_uv = &part->sn.uv; in xpc_get_remote_heartbeat_uv()
801 if (part_uv->cached_heartbeat.value == part->last_heartbeat && in xpc_get_remote_heartbeat_uv()
806 part->last_heartbeat = part_uv->cached_heartbeat.value; in xpc_get_remote_heartbeat_uv()
816 struct xpc_partition *part = &xpc_partitions[partid]; in xpc_request_partition_activation_uv() local
819 part->remote_rp_pa = remote_rp_gpa; /* !!! _pa here is really _gpa */ in xpc_request_partition_activation_uv()
820 part->remote_rp_ts_jiffies = remote_rp->ts_jiffies; in xpc_request_partition_activation_uv()
821 part->sn.uv.heartbeat_gpa = remote_rp->sn.uv.heartbeat_gpa; in xpc_request_partition_activation_uv()
822 part->sn.uv.activate_gru_mq_desc_gpa = in xpc_request_partition_activation_uv()
829 if (part->sn.uv.remote_act_state == XPC_P_AS_INACTIVE) { in xpc_request_partition_activation_uv()
834 xpc_send_activate_IRQ_part_uv(part, &msg, sizeof(msg), in xpc_request_partition_activation_uv()
838 if (part->act_state == XPC_P_AS_INACTIVE) in xpc_request_partition_activation_uv()
839 xpc_send_local_activate_IRQ_uv(part, XPC_P_ASR_ACTIVATE_UV); in xpc_request_partition_activation_uv()
843 xpc_request_partition_reactivation_uv(struct xpc_partition *part) in xpc_request_partition_reactivation_uv() argument
845 xpc_send_local_activate_IRQ_uv(part, XPC_P_ASR_ACTIVATE_UV); in xpc_request_partition_reactivation_uv()
849 xpc_request_partition_deactivation_uv(struct xpc_partition *part) in xpc_request_partition_deactivation_uv() argument
857 if (part->sn.uv.remote_act_state != XPC_P_AS_DEACTIVATING && in xpc_request_partition_deactivation_uv()
858 part->sn.uv.remote_act_state != XPC_P_AS_INACTIVE) { in xpc_request_partition_deactivation_uv()
860 msg.reason = part->reason; in xpc_request_partition_deactivation_uv()
861 xpc_send_activate_IRQ_part_uv(part, &msg, sizeof(msg), in xpc_request_partition_deactivation_uv()
867 xpc_cancel_partition_deactivation_request_uv(struct xpc_partition *part) in xpc_cancel_partition_deactivation_request_uv() argument
931 xpc_setup_ch_structures_uv(struct xpc_partition *part) in xpc_setup_ch_structures_uv() argument
936 for (ch_number = 0; ch_number < part->nchannels; ch_number++) { in xpc_setup_ch_structures_uv()
937 ch_uv = &part->channels[ch_number].sn.uv; in xpc_setup_ch_structures_uv()
950 xpc_teardown_ch_structures_uv(struct xpc_partition *part) in xpc_teardown_ch_structures_uv() argument
957 xpc_make_first_contact_uv(struct xpc_partition *part) in xpc_make_first_contact_uv() argument
966 xpc_send_activate_IRQ_part_uv(part, &msg, sizeof(msg), in xpc_make_first_contact_uv()
969 while (!((part->sn.uv.remote_act_state == XPC_P_AS_ACTIVATING) || in xpc_make_first_contact_uv()
970 (part->sn.uv.remote_act_state == XPC_P_AS_ACTIVE))) { in xpc_make_first_contact_uv()
973 "partition %d\n", XPC_PARTID(part)); in xpc_make_first_contact_uv()
978 if (part->act_state == XPC_P_AS_DEACTIVATING) in xpc_make_first_contact_uv()
979 return part->reason; in xpc_make_first_contact_uv()
986 xpc_get_chctl_all_flags_uv(struct xpc_partition *part) in xpc_get_chctl_all_flags_uv() argument
991 spin_lock_irqsave(&part->chctl_lock, irq_flags); in xpc_get_chctl_all_flags_uv()
992 chctl = part->chctl; in xpc_get_chctl_all_flags_uv()
994 part->chctl.all_flags = 0; in xpc_get_chctl_all_flags_uv()
996 spin_unlock_irqrestore(&part->chctl_lock, irq_flags); in xpc_get_chctl_all_flags_uv()
1175 xpc_send_chctl_local_msgrequest_uv(struct xpc_partition *part, int ch_number) in xpc_send_chctl_local_msgrequest_uv() argument
1179 spin_lock_irqsave(&part->chctl_lock, irq_flags); in xpc_send_chctl_local_msgrequest_uv()
1180 part->chctl.flags[ch_number] |= XPC_CHCTL_MSGREQUEST; in xpc_send_chctl_local_msgrequest_uv()
1181 spin_unlock_irqrestore(&part->chctl_lock, irq_flags); in xpc_send_chctl_local_msgrequest_uv()
1183 xpc_wakeup_channel_mgr(part); in xpc_send_chctl_local_msgrequest_uv()
1198 xpc_indicate_partition_engaged_uv(struct xpc_partition *part) in xpc_indicate_partition_engaged_uv() argument
1202 xpc_send_activate_IRQ_part_uv(part, &msg, sizeof(msg), in xpc_indicate_partition_engaged_uv()
1207 xpc_indicate_partition_disengaged_uv(struct xpc_partition *part) in xpc_indicate_partition_disengaged_uv() argument
1211 xpc_send_activate_IRQ_part_uv(part, &msg, sizeof(msg), in xpc_indicate_partition_disengaged_uv()
1325 xpc_handle_notify_mq_msg_uv(struct xpc_partition *part, in xpc_handle_notify_mq_msg_uv() argument
1328 struct xpc_partition_uv *part_uv = &part->sn.uv; in xpc_handle_notify_mq_msg_uv()
1335 if (unlikely(ch_number >= part->nchannels)) { in xpc_handle_notify_mq_msg_uv()
1338 ch_number, XPC_PARTID(part)); in xpc_handle_notify_mq_msg_uv()
1352 ch = &part->channels[ch_number]; in xpc_handle_notify_mq_msg_uv()
1388 xpc_send_chctl_local_msgrequest_uv(part, ch->number); in xpc_handle_notify_mq_msg_uv()
1398 struct xpc_partition *part; in xpc_handle_notify_IRQ_uv() local
1408 part = &xpc_partitions[partid]; in xpc_handle_notify_IRQ_uv()
1410 if (xpc_part_ref(part)) { in xpc_handle_notify_IRQ_uv()
1411 xpc_handle_notify_mq_msg_uv(part, msg); in xpc_handle_notify_IRQ_uv()
1412 xpc_part_deref(part); in xpc_handle_notify_IRQ_uv()
1429 xpc_process_msg_chctl_flags_uv(struct xpc_partition *part, int ch_number) in xpc_process_msg_chctl_flags_uv() argument
1431 struct xpc_channel *ch = &part->channels[ch_number]; in xpc_process_msg_chctl_flags_uv()