Revision b4511723

b/hw/apic.c
382 382
{
383 383
    int i;
384 384

  
385
    for(i = 0; i < APIC_LVT_NB; i++)
386
        s->lvt[i] = 1 << 16; /* mask LVT */
387 385
    s->tpr = 0;
388 386
    s->spurious_vec = 0xff;
389 387
    s->log_dest = 0;
......
391 389
    memset(s->isr, 0, sizeof(s->isr));
392 390
    memset(s->tmr, 0, sizeof(s->tmr));
393 391
    memset(s->irr, 0, sizeof(s->irr));
394
    memset(s->lvt, 0, sizeof(s->lvt));
392
    for(i = 0; i < APIC_LVT_NB; i++)
393
        s->lvt[i] = 1 << 16; /* mask LVT */
395 394
    s->esr = 0;
396 395
    memset(s->icr, 0, sizeof(s->icr));
397 396
    s->divide_conf = 0;
......
477 476
    intno = get_highest_priority_int(s->irr);
478 477
    if (intno < 0)
479 478
        return -1;
480
    reset_bit(s->irr, intno);
481 479
    if (s->tpr && intno <= s->tpr)
482 480
        return s->spurious_vec & 0xff;
481
    reset_bit(s->irr, intno);
483 482
    set_bit(s->isr, intno);
484 483
    apic_update_irq(s);
485 484
    return intno;

Also available in: Unified diff