Lines Matching refs:xics
26 static void icp_rm_deliver_irq(struct kvmppc_xics *xics, struct kvmppc_icp *icp,
30 static void ics_rm_check_resend(struct kvmppc_xics *xics, in ics_rm_check_resend() argument
44 icp_rm_deliver_irq(xics, icp, state->number); in ics_rm_check_resend()
130 static inline int check_too_hard(struct kvmppc_xics *xics, in check_too_hard() argument
133 return (xics->real_mode_dbg || icp->rm_action) ? H_TOO_HARD : H_SUCCESS; in check_too_hard()
136 static void icp_rm_check_resend(struct kvmppc_xics *xics, in icp_rm_check_resend() argument
143 for_each_set_bit(icsid, icp->resend_map, xics->max_icsid + 1) { in icp_rm_check_resend()
144 struct kvmppc_ics *ics = xics->ics[icsid]; in icp_rm_check_resend()
150 ics_rm_check_resend(xics, ics, icp); in icp_rm_check_resend()
192 static void icp_rm_deliver_irq(struct kvmppc_xics *xics, struct kvmppc_icp *icp, in icp_rm_deliver_irq() argument
217 ics = kvmppc_xics_find_ics(xics, new_irq, &src); in icp_rm_deliver_irq()
220 xics->err_noics++; in icp_rm_deliver_irq()
230 icp = kvmppc_xics_find_server(xics->kvm, state->server); in icp_rm_deliver_irq()
233 xics->err_noicp++; in icp_rm_deliver_irq()
310 static void icp_rm_down_cppr(struct kvmppc_xics *xics, struct kvmppc_icp *icp, in icp_rm_down_cppr() argument
379 icp_rm_check_resend(xics, icp); in icp_rm_down_cppr()
387 struct kvmppc_xics *xics = vcpu->kvm->arch.xics; in kvmppc_rm_h_xirr() local
391 if (!xics || !xics->real_mode) in kvmppc_rm_h_xirr()
419 return check_too_hard(xics, icp); in kvmppc_rm_h_xirr()
426 struct kvmppc_xics *xics = vcpu->kvm->arch.xics; in kvmppc_rm_h_ipi() local
432 if (!xics || !xics->real_mode) in kvmppc_rm_h_ipi()
497 icp_rm_deliver_irq(xics, icp, reject); in kvmppc_rm_h_ipi()
503 icp_rm_check_resend(xics, icp); in kvmppc_rm_h_ipi()
506 return check_too_hard(xics, this_icp); in kvmppc_rm_h_ipi()
512 struct kvmppc_xics *xics = vcpu->kvm->arch.xics; in kvmppc_rm_h_cppr() local
516 if (!xics || !xics->real_mode) in kvmppc_rm_h_cppr()
527 icp_rm_down_cppr(xics, icp, cppr); in kvmppc_rm_h_cppr()
565 icp_rm_deliver_irq(xics, icp, reject); in kvmppc_rm_h_cppr()
568 return check_too_hard(xics, icp); in kvmppc_rm_h_cppr()
573 struct kvmppc_xics *xics = vcpu->kvm->arch.xics; in kvmppc_rm_h_eoi() local
580 if (!xics || !xics->real_mode) in kvmppc_rm_h_eoi()
597 icp_rm_down_cppr(xics, icp, xirr >> 24); in kvmppc_rm_h_eoi()
608 ics = kvmppc_xics_find_ics(xics, irq, &src); in kvmppc_rm_h_eoi()
616 icp_rm_deliver_irq(xics, icp, irq); in kvmppc_rm_h_eoi()
624 return check_too_hard(xics, icp); in kvmppc_rm_h_eoi()