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()
132 static inline int check_too_hard(struct kvmppc_xics *xics, in check_too_hard() argument
135 return (xics->real_mode_dbg || icp->rm_action) ? H_TOO_HARD : H_SUCCESS; in check_too_hard()
138 static void icp_rm_check_resend(struct kvmppc_xics *xics, in icp_rm_check_resend() argument
145 for_each_set_bit(icsid, icp->resend_map, xics->max_icsid + 1) { in icp_rm_check_resend()
146 struct kvmppc_ics *ics = xics->ics[icsid]; in icp_rm_check_resend()
152 ics_rm_check_resend(xics, ics, icp); in icp_rm_check_resend()
194 static void icp_rm_deliver_irq(struct kvmppc_xics *xics, struct kvmppc_icp *icp, in icp_rm_deliver_irq() argument
219 ics = kvmppc_xics_find_ics(xics, new_irq, &src); in icp_rm_deliver_irq()
222 xics->err_noics++; in icp_rm_deliver_irq()
232 icp = kvmppc_xics_find_server(xics->kvm, state->server); in icp_rm_deliver_irq()
235 xics->err_noicp++; in icp_rm_deliver_irq()
312 static void icp_rm_down_cppr(struct kvmppc_xics *xics, struct kvmppc_icp *icp, in icp_rm_down_cppr() argument
381 icp_rm_check_resend(xics, icp); in icp_rm_down_cppr()
389 struct kvmppc_xics *xics = vcpu->kvm->arch.xics; in kvmppc_rm_h_xirr() local
393 if (!xics || !xics->real_mode) in kvmppc_rm_h_xirr()
421 return check_too_hard(xics, icp); in kvmppc_rm_h_xirr()
428 struct kvmppc_xics *xics = vcpu->kvm->arch.xics; in kvmppc_rm_h_ipi() local
434 if (!xics || !xics->real_mode) in kvmppc_rm_h_ipi()
499 icp_rm_deliver_irq(xics, icp, reject); in kvmppc_rm_h_ipi()
505 icp_rm_check_resend(xics, icp); in kvmppc_rm_h_ipi()
508 return check_too_hard(xics, this_icp); in kvmppc_rm_h_ipi()
514 struct kvmppc_xics *xics = vcpu->kvm->arch.xics; in kvmppc_rm_h_cppr() local
518 if (!xics || !xics->real_mode) in kvmppc_rm_h_cppr()
529 icp_rm_down_cppr(xics, icp, cppr); in kvmppc_rm_h_cppr()
567 icp_rm_deliver_irq(xics, icp, reject); in kvmppc_rm_h_cppr()
570 return check_too_hard(xics, icp); in kvmppc_rm_h_cppr()
575 struct kvmppc_xics *xics = vcpu->kvm->arch.xics; in kvmppc_rm_h_eoi() local
582 if (!xics || !xics->real_mode) in kvmppc_rm_h_eoi()
599 icp_rm_down_cppr(xics, icp, xirr >> 24); in kvmppc_rm_h_eoi()
610 ics = kvmppc_xics_find_ics(xics, irq, &src); in kvmppc_rm_h_eoi()
618 icp_rm_deliver_irq(xics, icp, irq); in kvmppc_rm_h_eoi()
626 return check_too_hard(xics, icp); in kvmppc_rm_h_eoi()