VirtualBox

Changeset 13258 in vbox for trunk/src


Ignore:
Timestamp:
Oct 14, 2008 12:55:26 PM (16 years ago)
Author:
vboxsync
Message:

SupDrv: shot at an S10 issue, disable interrupts while updating the gip time.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostDrivers/Support/SUPDrv.c

    r13061 r13258  
    45914591static DECLCALLBACK(void) supdrvGipSyncTimer(PRTTIMER pTimer, void *pvUser, uint64_t iTick)
    45924592{
    4593     PSUPDRVDEVEXT pDevExt  = (PSUPDRVDEVEXT)pvUser;
     4593#ifdef RT_OS_SOLARIS
     4594    RTCCUINTREG     fOldFlags = ASMIntDisableFlags(); /* brute force for S10. */
     4595#endif
     4596    PSUPDRVDEVEXT   pDevExt   = (PSUPDRVDEVEXT)pvUser;
    45944597    supdrvGipUpdate(pDevExt->pGip, RTTimeSystemNanoTS());
     4598
     4599#ifdef RT_OS_SOLARIS
     4600    ASMSetFlags(fOldFlags);
     4601#endif
    45954602}
    45964603
     
    46034610static DECLCALLBACK(void) supdrvGipAsyncTimer(PRTTIMER pTimer, void *pvUser, uint64_t iTick)
    46044611{
    4605     PSUPDRVDEVEXT   pDevExt = (PSUPDRVDEVEXT)pvUser;
    4606     RTCPUID         idCpu   = RTMpCpuId();
    4607     uint64_t        NanoTS  = RTTimeSystemNanoTS();
     4612#ifdef RT_OS_SOLARIS
     4613    RTCCUINTREG     fOldFlags = ASMIntDisableFlags(); /* brute force for S10. */
     4614#endif
     4615    PSUPDRVDEVEXT   pDevExt   = (PSUPDRVDEVEXT)pvUser;
     4616    RTCPUID         idCpu     = RTMpCpuId();
     4617    uint64_t        NanoTS    = RTTimeSystemNanoTS();
    46084618
    46094619    /** @todo reset the transaction number and whatnot when iTick == 1. */
     
    46124622    else
    46134623        supdrvGipUpdatePerCpu(pDevExt->pGip, NanoTS, ASMGetApicId());
     4624
     4625#ifdef RT_OS_SOLARIS
     4626    ASMSetFlags(fOldFlags);
     4627#endif
    46144628}
    46154629
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