X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fvmm_intr.c;h=7ffd1a8dd63c1e91b08727f6620fdbf9158a2752;hb=f2c389745faae8bbd6e16b60baa59c01e735949f;hp=ccbfd9fd5a5388144c4154c4879d7b3d3f3e29b2;hpb=7bb4a918835892e9071ffbdef1ea8e57f9a12950;p=palacios.git diff --git a/palacios/src/palacios/vmm_intr.c b/palacios/src/palacios/vmm_intr.c index ccbfd9f..7ffd1a8 100644 --- a/palacios/src/palacios/vmm_intr.c +++ b/palacios/src/palacios/vmm_intr.c @@ -44,6 +44,8 @@ void v3_init_interrupt_state(struct guest_info * info) { info->intr_state.excp_num = 0; info->intr_state.excp_error_code = 0; + INIT_LIST_HEAD(&(info->intr_state.controller_list)); + memset((uchar_t *)(info->intr_state.hooks), 0, sizeof(struct v3_irq_hook *) * 256); } @@ -196,7 +198,7 @@ int v3_raise_irq(struct guest_info * info, int irq) { struct intr_controller * ctrl = NULL; struct v3_intr_state * intr_state = &(info->intr_state); - PrintDebug("[v3_raise_irq]\n"); + PrintDebug("[v3_raise_irq (%d)]\n", irq); list_for_each_entry(ctrl, &(intr_state->controller_list), ctrl_node) { ctrl->ctrl_ops->raise_intr(ctrl->priv_data, irq); @@ -289,8 +291,8 @@ int v3_injecting_intr(struct guest_info * info, uint_t intr_num, intr_type_t typ } else if (type == EXTERNAL_IRQ) { struct intr_controller * ctrl = NULL; + PrintDebug("[injecting_intr] External_Irq with intr_num = %x\n", intr_num); list_for_each_entry(ctrl, &(intr_state->controller_list), ctrl_node) { - PrintDebug("[injecting_intr] External_Irq with intr_num = %x\n", intr_num); ctrl->ctrl_ops->begin_irq(ctrl->priv_data, intr_num); } }