VirtualBox

Changeset 90198 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Jul 14, 2021 10:44:42 PM (4 years ago)
Author:
vboxsync
Message:

DevPS2: The queue header member pszDesc is ring-3 only and must be wrapped in R3STRING when logging or it'll trigger SMAP panics.

Location:
trunk/src/VBox/Devices/Input
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Input/DevPS2.cpp

    r83443 r90198  
    731731{
    732732    Assert(cElements > 0);
    733     LogFlowFunc(("Clearing %s queue %p\n", pQHdr->pszDesc, pQHdr));
     733    LogFlowFunc(("Clearing %s queue %p\n", R3STRING(pQHdr->pszDescR3), pQHdr));
    734734    pQHdr->wpos  = pQHdr->rpos = pQHdr->rpos % cElements;
    735735    pQHdr->cUsed = 0;
     
    764764        pQHdr->cUsed = cUsed + 1;
    765765
    766         LogRelFlowFunc(("inserted %#04x into %s queue %p\n", bValue, pQHdr->pszDesc, pQHdr));
     766        LogRelFlowFunc(("inserted %#04x into %s queue %p\n", bValue, R3STRING(pQHdr->pszDescR3), pQHdr));
    767767    }
    768768    else
    769769    {
    770770        Assert(cUsed == cElements);
    771         LogRelFlowFunc(("%s queue %p full (%zu entries)\n", pQHdr->pszDesc, pQHdr, cElements));
     771        LogRelFlowFunc(("%s queue %p full (%zu entries)\n", R3STRING(pQHdr->pszDescR3), pQHdr, cElements));
    772772    }
    773773}
     
    804804        pQHdr->cUsed = cUsed - 1;
    805805
    806         LogFlowFunc(("removed 0x%02X from %s queue %p\n", *pbValue, pQHdr->pszDesc, pQHdr));
     806        LogFlowFunc(("removed 0x%02X from %s queue %p\n", *pbValue, R3STRING(pQHdr->pszDescR3), pQHdr));
    807807        rc = VINF_SUCCESS;
    808808    }
    809809    else
    810810    {
    811         LogFlowFunc(("%s queue %p empty\n", pQHdr->pszDesc, pQHdr));
     811        LogFlowFunc(("%s queue %p empty\n", R3STRING(pQHdr->pszDescR3), pQHdr));
    812812        rc = VINF_TRY_AGAIN;
    813813    }
     
    835835    pHlp->pfnSSMPutU32(pSSM, cItems);
    836836
    837     LogFlow(("Storing %u items from %s queue %p\n", cItems, pQHdr->pszDesc, pQHdr));
     837    LogFlow(("Storing %u items from %s queue %p\n", cItems, pQHdr->pszDescR3, pQHdr));
    838838
    839839    /* Save queue data - only the bytes actually used (typically zero). */
     
    860860    AssertRCReturn(rc, rc);
    861861
    862     LogFlow(("Loading %u items to %s queue %p\n", cUsed, pQHdr->pszDesc, pQHdr));
     862    LogFlow(("Loading %u items to %s queue %p\n", cUsed, pQHdr->pszDescR3, pQHdr));
    863863
    864864    AssertMsgReturn(cUsed <= cElements, ("Saved size=%u, actual=%zu\n", cUsed, cElements),
  • trunk/src/VBox/Devices/Input/DevPS2.h

    r89935 r90198  
    3434typedef struct PS2QHDR
    3535{
    36     uint32_t volatile   rpos;
    37     uint32_t volatile   wpos;
    38     uint32_t volatile   cUsed;
    39     uint32_t            uPadding;
    40     const char          *pszDesc;
     36    uint32_t volatile       rpos;
     37    uint32_t volatile       wpos;
     38    uint32_t volatile       cUsed;
     39    uint32_t                uPadding;
     40    R3PTRTYPE(const char *) pszDescR3;
    4141} PS2QHDR;
    4242/** Pointer to a queue header. */
  • trunk/src/VBox/Devices/Input/DevPS2K.cpp

    r89982 r90198  
    14731473    pThisCC->Keyboard.IPort.pfnPutEventHid    = ps2kR3KeyboardPort_PutEventHid;
    14741474
    1475     pThis->cmdQ.Hdr.pszDesc = "Kbd Cmd";
    1476     pThis->keyQ.Hdr.pszDesc = "Kbd Key";
     1475    pThis->cmdQ.Hdr.pszDescR3 = "Kbd Cmd";
     1476    pThis->keyQ.Hdr.pszDescR3 = "Kbd Key";
    14771477
    14781478    /*
  • trunk/src/VBox/Devices/Input/DevPS2M.cpp

    r87820 r90198  
    10621062    LogFlowFunc(("\n"));
    10631063
    1064     pThis->cmdQ.Hdr.pszDesc = "Aux Cmd";
    1065     pThis->evtQ.Hdr.pszDesc = "Aux Evt";
     1064    pThis->cmdQ.Hdr.pszDescR3 = "Aux Cmd";
     1065    pThis->evtQ.Hdr.pszDescR3 = "Aux Evt";
    10661066
    10671067#ifdef RT_STRICT
     
    11271127    This.u8State = AUX_STATE_ENABLED;
    11281128    This.fThrottleActive = true;
    1129     This.cmdQ.Hdr.pszDesc = "Test Aux Cmd";
    1130     This.evtQ.Hdr.pszDesc = "Test Aux Evt";
     1129    This.cmdQ.Hdr.pszDescR3 = "Test Aux Cmd";
     1130    This.evtQ.Hdr.pszDescR3 = "Test Aux Evt";
    11311131    /* Certain Windows touch pad drivers report a double tap as a press, then
    11321132     * a release-press-release all within a single 10ms interval.  Simulate
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