VirtualBox

Changeset 12939 in vbox for trunk/src/VBox/Devices/PC


Ignore:
Timestamp:
Oct 2, 2008 2:20:24 PM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
37364
Message:

refined APIC writes a bit, put a comment with explanation where bad writes can come from

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/PC/DevAPIC.cpp

    r12869 r12939  
    15671567                        /* According to IOAPIC spec, vectors should be from 0x10 to 0xfe */
    15681568                        uint8_t vec = val & 0xff;
    1569                         if ((vec >= 0x10) && (vec < 0xff))
     1569                        if ((val & APIC_LVT_MASKED) ||
     1570                            ((vec >= 0x10) && (vec < 0xff)))
    15701571                        {
    15711572                            s->ioredtbl[index] &= ~0xffffffffULL;
     
    15741575                        else
    15751576                        {
    1576                             LogRel(("IOAPIC BUG: bad vector writing %x(sel=%x) to %d\n", val, s->ioregsel, index));
     1577                            /*
     1578                             * Linux 2.6 kernels has pretty strange function
     1579                             * unlock_ExtINT_logic() which writes
     1580                             * absolutely bogus (all 0) value into the vector
     1581                             * with pretty vague explanation why.
     1582                             * So we just ignore such writes.
     1583                             */
     1584                            LogRel(("IOAPIC GUEST BUG: bad vector writing %x(sel=%x) to %d\n", val, s->ioregsel, index));
    15771585                        }
    15781586                    }
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette