Lines Matching full:part
376 struct xpc_partition *part; in xpc_process_activate_IRQ_rcvd_uv() local
383 part = &xpc_partitions[partid]; in xpc_process_activate_IRQ_rcvd_uv()
385 if (part->sn.uv.act_state_req == 0) in xpc_process_activate_IRQ_rcvd_uv()
391 act_state_req = part->sn.uv.act_state_req; in xpc_process_activate_IRQ_rcvd_uv()
392 part->sn.uv.act_state_req = 0; in xpc_process_activate_IRQ_rcvd_uv()
396 if (part->act_state == XPC_P_AS_INACTIVE) in xpc_process_activate_IRQ_rcvd_uv()
397 xpc_activate_partition(part); in xpc_process_activate_IRQ_rcvd_uv()
398 else if (part->act_state == XPC_P_AS_DEACTIVATING) in xpc_process_activate_IRQ_rcvd_uv()
399 XPC_DEACTIVATE_PARTITION(part, xpReactivating); in xpc_process_activate_IRQ_rcvd_uv()
402 if (part->act_state == XPC_P_AS_INACTIVE) in xpc_process_activate_IRQ_rcvd_uv()
403 xpc_activate_partition(part); in xpc_process_activate_IRQ_rcvd_uv()
405 XPC_DEACTIVATE_PARTITION(part, xpReactivating); in xpc_process_activate_IRQ_rcvd_uv()
408 XPC_DEACTIVATE_PARTITION(part, part->sn.uv.reason); in xpc_process_activate_IRQ_rcvd_uv()
423 xpc_handle_activate_mq_msg_uv(struct xpc_partition *part, in xpc_handle_activate_mq_msg_uv() argument
429 struct xpc_partition_uv *part_uv = &part->sn.uv; in xpc_handle_activate_mq_msg_uv()
454 part->remote_rp_pa = msg->rp_gpa; /* !!! _pa is _gpa */ in xpc_handle_activate_mq_msg_uv()
455 part->remote_rp_ts_jiffies = msg_hdr->rp_ts_jiffies; in xpc_handle_activate_mq_msg_uv()
496 args = &part->remote_openclose_args[msg->ch_number]; in xpc_handle_activate_mq_msg_uv()
499 spin_lock_irqsave(&part->chctl_lock, irq_flags); in xpc_handle_activate_mq_msg_uv()
500 part->chctl.flags[msg->ch_number] |= XPC_CHCTL_CLOSEREQUEST; in xpc_handle_activate_mq_msg_uv()
501 spin_unlock_irqrestore(&part->chctl_lock, irq_flags); in xpc_handle_activate_mq_msg_uv()
503 xpc_wakeup_channel_mgr(part); in xpc_handle_activate_mq_msg_uv()
516 spin_lock_irqsave(&part->chctl_lock, irq_flags); in xpc_handle_activate_mq_msg_uv()
517 part->chctl.flags[msg->ch_number] |= XPC_CHCTL_CLOSEREPLY; in xpc_handle_activate_mq_msg_uv()
518 spin_unlock_irqrestore(&part->chctl_lock, irq_flags); in xpc_handle_activate_mq_msg_uv()
520 xpc_wakeup_channel_mgr(part); in xpc_handle_activate_mq_msg_uv()
532 args = &part->remote_openclose_args[msg->ch_number]; in xpc_handle_activate_mq_msg_uv()
536 spin_lock_irqsave(&part->chctl_lock, irq_flags); in xpc_handle_activate_mq_msg_uv()
537 part->chctl.flags[msg->ch_number] |= XPC_CHCTL_OPENREQUEST; in xpc_handle_activate_mq_msg_uv()
538 spin_unlock_irqrestore(&part->chctl_lock, irq_flags); in xpc_handle_activate_mq_msg_uv()
540 xpc_wakeup_channel_mgr(part); in xpc_handle_activate_mq_msg_uv()
551 args = &part->remote_openclose_args[msg->ch_number]; in xpc_handle_activate_mq_msg_uv()
556 spin_lock_irqsave(&part->chctl_lock, irq_flags); in xpc_handle_activate_mq_msg_uv()
557 part->chctl.flags[msg->ch_number] |= XPC_CHCTL_OPENREPLY; in xpc_handle_activate_mq_msg_uv()
558 spin_unlock_irqrestore(&part->chctl_lock, irq_flags); in xpc_handle_activate_mq_msg_uv()
560 xpc_wakeup_channel_mgr(part); in xpc_handle_activate_mq_msg_uv()
571 spin_lock_irqsave(&part->chctl_lock, irq_flags); in xpc_handle_activate_mq_msg_uv()
572 part->chctl.flags[msg->ch_number] |= XPC_CHCTL_OPENCOMPLETE; in xpc_handle_activate_mq_msg_uv()
573 spin_unlock_irqrestore(&part->chctl_lock, irq_flags); in xpc_handle_activate_mq_msg_uv()
575 xpc_wakeup_channel_mgr(part); in xpc_handle_activate_mq_msg_uv()
592 "from partition=%d\n", msg_hdr->type, XPC_PARTID(part)); in xpc_handle_activate_mq_msg_uv()
606 if (msg_hdr->rp_ts_jiffies != part->remote_rp_ts_jiffies && in xpc_handle_activate_mq_msg_uv()
607 part->remote_rp_ts_jiffies != 0) { in xpc_handle_activate_mq_msg_uv()
627 struct xpc_partition *part; in xpc_handle_activate_IRQ_uv() local
642 part = &xpc_partitions[partid]; in xpc_handle_activate_IRQ_uv()
644 part_referenced = xpc_part_ref(part); in xpc_handle_activate_IRQ_uv()
645 xpc_handle_activate_mq_msg_uv(part, msg_hdr, in xpc_handle_activate_IRQ_uv()
649 xpc_part_deref(part); in xpc_handle_activate_IRQ_uv()
676 xpc_send_activate_IRQ_uv(struct xpc_partition *part, void *msg, size_t msg_size, in xpc_send_activate_IRQ_uv() argument
680 struct xpc_partition_uv *part_uv = &part->sn.uv; in xpc_send_activate_IRQ_uv()
689 msg_hdr->act_state = part->act_state; in xpc_send_activate_IRQ_uv()
732 xpc_send_activate_IRQ_part_uv(struct xpc_partition *part, void *msg, in xpc_send_activate_IRQ_part_uv() argument
737 ret = xpc_send_activate_IRQ_uv(part, msg, msg_size, msg_type); in xpc_send_activate_IRQ_part_uv()
739 XPC_DEACTIVATE_PARTITION(part, ret); in xpc_send_activate_IRQ_part_uv()
746 struct xpc_partition *part = &xpc_partitions[ch->partid]; in xpc_send_activate_IRQ_ch_uv() local
749 ret = xpc_send_activate_IRQ_uv(part, msg, msg_size, msg_type); in xpc_send_activate_IRQ_ch_uv()
754 XPC_DEACTIVATE_PARTITION(part, ret); in xpc_send_activate_IRQ_ch_uv()
762 xpc_send_local_activate_IRQ_uv(struct xpc_partition *part, int act_state_req) in xpc_send_local_activate_IRQ_uv() argument
765 struct xpc_partition_uv *part_uv = &part->sn.uv; in xpc_send_local_activate_IRQ_uv()
875 xpc_get_remote_heartbeat_uv(struct xpc_partition *part) in xpc_get_remote_heartbeat_uv() argument
877 struct xpc_partition_uv *part_uv = &part->sn.uv; in xpc_get_remote_heartbeat_uv()
886 if (part_uv->cached_heartbeat.value == part->last_heartbeat && in xpc_get_remote_heartbeat_uv()
891 part->last_heartbeat = part_uv->cached_heartbeat.value; in xpc_get_remote_heartbeat_uv()
901 struct xpc_partition *part = &xpc_partitions[partid]; in xpc_request_partition_activation_uv() local
904 part->remote_rp_pa = remote_rp_gpa; /* !!! _pa here is really _gpa */ in xpc_request_partition_activation_uv()
905 part->remote_rp_ts_jiffies = remote_rp->ts_jiffies; in xpc_request_partition_activation_uv()
906 part->sn.uv.heartbeat_gpa = remote_rp->sn.uv.heartbeat_gpa; in xpc_request_partition_activation_uv()
907 part->sn.uv.activate_gru_mq_desc_gpa = in xpc_request_partition_activation_uv()
914 if (part->sn.uv.remote_act_state == XPC_P_AS_INACTIVE) { in xpc_request_partition_activation_uv()
919 xpc_send_activate_IRQ_part_uv(part, &msg, sizeof(msg), in xpc_request_partition_activation_uv()
923 if (part->act_state == XPC_P_AS_INACTIVE) in xpc_request_partition_activation_uv()
924 xpc_send_local_activate_IRQ_uv(part, XPC_P_ASR_ACTIVATE_UV); in xpc_request_partition_activation_uv()
928 xpc_request_partition_reactivation_uv(struct xpc_partition *part) in xpc_request_partition_reactivation_uv() argument
930 xpc_send_local_activate_IRQ_uv(part, XPC_P_ASR_ACTIVATE_UV); in xpc_request_partition_reactivation_uv()
934 xpc_request_partition_deactivation_uv(struct xpc_partition *part) in xpc_request_partition_deactivation_uv() argument
942 if (part->sn.uv.remote_act_state != XPC_P_AS_DEACTIVATING && in xpc_request_partition_deactivation_uv()
943 part->sn.uv.remote_act_state != XPC_P_AS_INACTIVE) { in xpc_request_partition_deactivation_uv()
945 msg.reason = part->reason; in xpc_request_partition_deactivation_uv()
946 xpc_send_activate_IRQ_part_uv(part, &msg, sizeof(msg), in xpc_request_partition_deactivation_uv()
952 xpc_cancel_partition_deactivation_request_uv(struct xpc_partition *part) in xpc_cancel_partition_deactivation_request_uv() argument
1016 xpc_setup_ch_structures_uv(struct xpc_partition *part) in xpc_setup_ch_structures_uv() argument
1021 for (ch_number = 0; ch_number < part->nchannels; ch_number++) { in xpc_setup_ch_structures_uv()
1022 ch_uv = &part->channels[ch_number].sn.uv; in xpc_setup_ch_structures_uv()
1035 xpc_teardown_ch_structures_uv(struct xpc_partition *part) in xpc_teardown_ch_structures_uv() argument
1042 xpc_make_first_contact_uv(struct xpc_partition *part) in xpc_make_first_contact_uv() argument
1051 xpc_send_activate_IRQ_part_uv(part, &msg, sizeof(msg), in xpc_make_first_contact_uv()
1054 while (!((part->sn.uv.remote_act_state == XPC_P_AS_ACTIVATING) || in xpc_make_first_contact_uv()
1055 (part->sn.uv.remote_act_state == XPC_P_AS_ACTIVE))) { in xpc_make_first_contact_uv()
1058 "partition %d\n", XPC_PARTID(part)); in xpc_make_first_contact_uv()
1063 if (part->act_state == XPC_P_AS_DEACTIVATING) in xpc_make_first_contact_uv()
1064 return part->reason; in xpc_make_first_contact_uv()
1071 xpc_get_chctl_all_flags_uv(struct xpc_partition *part) in xpc_get_chctl_all_flags_uv() argument
1076 spin_lock_irqsave(&part->chctl_lock, irq_flags); in xpc_get_chctl_all_flags_uv()
1077 chctl = part->chctl; in xpc_get_chctl_all_flags_uv()
1079 part->chctl.all_flags = 0; in xpc_get_chctl_all_flags_uv()
1081 spin_unlock_irqrestore(&part->chctl_lock, irq_flags); in xpc_get_chctl_all_flags_uv()
1260 xpc_send_chctl_local_msgrequest_uv(struct xpc_partition *part, int ch_number) in xpc_send_chctl_local_msgrequest_uv() argument
1264 spin_lock_irqsave(&part->chctl_lock, irq_flags); in xpc_send_chctl_local_msgrequest_uv()
1265 part->chctl.flags[ch_number] |= XPC_CHCTL_MSGREQUEST; in xpc_send_chctl_local_msgrequest_uv()
1266 spin_unlock_irqrestore(&part->chctl_lock, irq_flags); in xpc_send_chctl_local_msgrequest_uv()
1268 xpc_wakeup_channel_mgr(part); in xpc_send_chctl_local_msgrequest_uv()
1283 xpc_indicate_partition_engaged_uv(struct xpc_partition *part) in xpc_indicate_partition_engaged_uv() argument
1287 xpc_send_activate_IRQ_part_uv(part, &msg, sizeof(msg), in xpc_indicate_partition_engaged_uv()
1292 xpc_indicate_partition_disengaged_uv(struct xpc_partition *part) in xpc_indicate_partition_disengaged_uv() argument
1296 xpc_send_activate_IRQ_part_uv(part, &msg, sizeof(msg), in xpc_indicate_partition_disengaged_uv()
1410 xpc_handle_notify_mq_msg_uv(struct xpc_partition *part, in xpc_handle_notify_mq_msg_uv() argument
1413 struct xpc_partition_uv *part_uv = &part->sn.uv; in xpc_handle_notify_mq_msg_uv()
1420 if (unlikely(ch_number >= part->nchannels)) { in xpc_handle_notify_mq_msg_uv()
1423 ch_number, XPC_PARTID(part)); in xpc_handle_notify_mq_msg_uv()
1437 ch = &part->channels[ch_number]; in xpc_handle_notify_mq_msg_uv()
1473 xpc_send_chctl_local_msgrequest_uv(part, ch->number); in xpc_handle_notify_mq_msg_uv()
1483 struct xpc_partition *part; in xpc_handle_notify_IRQ_uv() local
1493 part = &xpc_partitions[partid]; in xpc_handle_notify_IRQ_uv()
1495 if (xpc_part_ref(part)) { in xpc_handle_notify_IRQ_uv()
1496 xpc_handle_notify_mq_msg_uv(part, msg); in xpc_handle_notify_IRQ_uv()
1497 xpc_part_deref(part); in xpc_handle_notify_IRQ_uv()
1514 xpc_process_msg_chctl_flags_uv(struct xpc_partition *part, int ch_number) in xpc_process_msg_chctl_flags_uv() argument
1516 struct xpc_channel *ch = &part->channels[ch_number]; in xpc_process_msg_chctl_flags_uv()