VirtualBox

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


Ignore:
Timestamp:
Jul 23, 2021 4:26:25 PM (4 years ago)
Author:
vboxsync
Message:

DevIoApic: Must save & restore the flip-flop bitmap. bugref:10073 oem2ticketref:43

File:
1 edited

Legend:

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

    r90309 r90318  
    3636*********************************************************************************************************************************/
    3737/** The current IO APIC saved state version. */
    38 #define IOAPIC_SAVED_STATE_VERSION              2
     38#define IOAPIC_SAVED_STATE_VERSION                  3
     39/** The current IO APIC saved state version. */
     40#define IOAPIC_SAVED_STATE_VERSION_NO_FLIPFLOP_MAP  2
    3941/** The saved state version used by VirtualBox 5.0 and
    4042 *  earlier.  */
     
    14331435        pHlp->pfnSSMPutU64(pSSM, pThis->au64RedirTable[idxRte]);
    14341436
     1437    for (uint8_t idx = 0; idx < RT_ELEMENTS(pThis->bmFlipFlop); idx++)
     1438        pHlp->pfnSSMPutU64(pSSM, pThis->bmFlipFlop[idx]);
     1439
    14351440    return VINF_SUCCESS;
    14361441}
     
    14511456    /* Weed out invalid versions. */
    14521457    if (   uVersion != IOAPIC_SAVED_STATE_VERSION
     1458        && uVersion != IOAPIC_SAVED_STATE_VERSION_NO_FLIPFLOP_MAP
    14531459        && uVersion != IOAPIC_SAVED_STATE_VERSION_VBOX_50)
    14541460    {
     
    14571463    }
    14581464
    1459     if (uVersion == IOAPIC_SAVED_STATE_VERSION)
     1465    if (uVersion >= IOAPIC_SAVED_STATE_VERSION_NO_FLIPFLOP_MAP)
    14601466        pHlp->pfnSSMGetU32(pSSM, &pThis->uIrr);
    14611467
     
    14641470    for (uint8_t idxRte = 0; idxRte < RT_ELEMENTS(pThis->au64RedirTable); idxRte++)
    14651471        pHlp->pfnSSMGetU64(pSSM, &pThis->au64RedirTable[idxRte]);
     1472
     1473    if (uVersion > IOAPIC_SAVED_STATE_VERSION_NO_FLIPFLOP_MAP)
     1474        for (uint8_t idx = 0; idx < RT_ELEMENTS(pThis->bmFlipFlop); idx++)
     1475            pHlp->pfnSSMGetU64(pSSM, &pThis->bmFlipFlop[idx]);
    14661476
    14671477    return VINF_SUCCESS;
Note: See TracChangeset for help on using the changeset viewer.

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