Print this page
3605 Xen HVM hangs during boot if apix is enabled
*** 276,285 ****
--- 276,286 ----
tmp_hdl.ih_type = type;
tmp_hdl.ih_inum = inum;
tmp_hdl.ih_scratch1 = count;
tmp_hdl.ih_scratch2 = (void *)(uintptr_t)behavior;
tmp_hdl.ih_dip = dip;
+ tmp_hdl.ih_irq = -1;
if (i_ddi_intr_ops(dip, dip, DDI_INTROP_ALLOC,
&tmp_hdl, (void *)actualp) != DDI_SUCCESS) {
DDI_INTR_APIDBG((CE_CONT, "ddi_intr_alloc: allocation "
"failed\n"));
*** 322,335 ****
hdlp->ih_cap = cap;
hdlp->ih_ver = DDI_INTR_VERSION;
hdlp->ih_state = DDI_IHDL_STATE_ALLOC;
hdlp->ih_dip = dip;
hdlp->ih_inum = i;
i_ddi_alloc_intr_phdl(hdlp);
! if (type & DDI_INTR_TYPE_FIXED)
i_ddi_set_intr_handle(dip, hdlp->ih_inum,
(ddi_intr_handle_t)hdlp);
DDI_INTR_APIDBG((CE_CONT, "ddi_intr_alloc: hdlp = 0x%p\n",
(void *)h_array[i]));
}
--- 323,340 ----
hdlp->ih_cap = cap;
hdlp->ih_ver = DDI_INTR_VERSION;
hdlp->ih_state = DDI_IHDL_STATE_ALLOC;
hdlp->ih_dip = dip;
hdlp->ih_inum = i;
+ hdlp->ih_irq = -1;
i_ddi_alloc_intr_phdl(hdlp);
! if (type & DDI_INTR_TYPE_FIXED) {
! if (tmp_hdl.ih_irq != -1)
! hdlp->ih_irq = tmp_hdl.ih_irq;
i_ddi_set_intr_handle(dip, hdlp->ih_inum,
(ddi_intr_handle_t)hdlp);
+ }
DDI_INTR_APIDBG((CE_CONT, "ddi_intr_alloc: hdlp = 0x%p\n",
(void *)h_array[i]));
}