X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fdevices%2Fapic.c;h=99510715eff88ab89175b970104d940d1e84f05d;hb=e61e0890e6f13b1362cfffdcd287e90f1d41e443;hp=4823cb6ea5fb3de6f3ee37a5d08abb052698d013;hpb=68a5f03fab0737ce304261028a4517c49ea954c6;p=palacios.git diff --git a/palacios/src/devices/apic.c b/palacios/src/devices/apic.c index 4823cb6..9951071 100644 --- a/palacios/src/devices/apic.c +++ b/palacios/src/devices/apic.c @@ -472,7 +472,6 @@ static int add_apic_irq_entry(struct apic_state * apic, uint32_t irq_num, static void drain_irq_entries(struct apic_state * apic) { - while (1) { unsigned int flags = 0; struct irq_queue_entry * entry = NULL; @@ -1878,6 +1877,12 @@ static int apic_init(struct v3_vm_info * vm, v3_cfg_tree_t * cfg) { apic_dev = (struct apic_dev_state *)V3_Malloc(sizeof(struct apic_dev_state) + sizeof(struct apic_state) * vm->num_cores); + + if (!apic_dev) { + PrintError("Failed to allocate space for APIC\n"); + return -1; + } + apic_dev->num_apics = vm->num_cores; v3_lock_init(&(apic_dev->state_lock));