Lines Matching refs:prio

175 int kvmppc_xive_attach_escalation(struct kvm_vcpu *vcpu, u8 prio,
179 struct xive_q *q = &xc->queues[prio];
184 if (xc->esc_virq[prio])
188 xc->esc_virq[prio] = irq_create_mapping(NULL, q->esc_irq);
189 if (!xc->esc_virq[prio]) {
191 prio, xc->server_num);
200 vcpu->kvm->arch.lpid, xc->server_num, prio);
203 prio, xc->server_num);
208 pr_devel("Escalation %s irq %d (prio %d)\n", name, xc->esc_virq[prio], prio);
210 rc = request_irq(xc->esc_virq[prio], xive_esc_irq,
214 prio, xc->server_num);
217 xc->esc_virq_names[prio] = name;
228 struct irq_data *d = irq_get_irq_data(xc->esc_virq[prio]);
239 irq_dispose_mapping(xc->esc_virq[prio]);
240 xc->esc_virq[prio] = 0;
245 static int xive_provision_queue(struct kvm_vcpu *vcpu, u8 prio)
249 struct xive_q *q = &xc->queues[prio];
260 prio, xc->server_num);
267 * queue is fully configured. This is a requirement for prio 0
272 rc = xive_native_configure_queue(xc->vp_id, q, prio, qpage,
276 prio, xc->server_num);
281 static int xive_check_provisioning(struct kvm *kvm, u8 prio)
290 if (xive->qmap & (1 << prio))
293 pr_devel("Provisioning prio... %d\n", prio);
299 rc = xive_provision_queue(vcpu, prio);
301 kvmppc_xive_attach_escalation(vcpu, prio,
309 xive->qmap |= (1 << prio);
313 static void xive_inc_q_pending(struct kvm *kvm, u32 server, u8 prio)
329 q = &xc->queues[prio];
333 static int xive_try_pick_queue(struct kvm_vcpu *vcpu, u8 prio)
344 q = &xc->queues[prio];
353 int kvmppc_xive_select_target(struct kvm *kvm, u32 *server, u8 prio)
365 pr_devel("Finding irq target on 0x%x/%d...\n", *server, prio);
368 rc = xive_try_pick_queue(vcpu, prio);
378 rc = xive_try_pick_queue(vcpu, prio);
381 pr_devel(" found on 0x%x/%d\n", *server, prio);
474 u8 prio)
518 state->guest_priority = prio;
522 * Target an interrupt to a given server/prio, this will fallback
530 u32 server, u8 prio)
541 rc = kvmppc_xive_select_target(kvm, &server, prio);
562 state->act_priority = prio;
570 prio, state->number);
626 pr_devel("set_xive ! irq 0x%x server 0x%x prio %d\n",
906 u8 prio;
943 prio = xive_lock_and_mask(xive, sb, state);
944 pr_devel(" old IPI prio %02x P:%d Q:%d\n", prio,
978 if (prio != MASKED && !state->old_p)
984 /* Restore guest prio (unlocks EOI) */
986 state->guest_priority = prio;
1001 u8 prio;
1019 prio = xive_lock_and_mask(xive, sb, state);
1020 pr_devel(" old IRQ prio %02x P:%d Q:%d\n", prio,
1060 if (prio == MASKED || state->old_p)
1065 /* Restore guest prio (unlocks EOI) */
1067 state->guest_priority = prio;
1444 /* Restore mask/prio if it wasn't masked */
1528 u64 val, prio;
1564 prio = state->saved_scan_prio;
1566 if (prio == MASKED) {
1568 prio = state->saved_priority;
1570 val |= prio << KVM_XICS_PRIORITY_SHIFT;
1588 if (state->in_queue || (prio == MASKED && state->saved_q))
1737 /* First convert prio and mark interrupt as untargetted */
1812 pr_devel(" masked, saving prio\n");
1816 pr_devel(" unmasked, restoring to prio %d\n", guest_prio);