VirtualBox

Changeset 78528 in vbox


Ignore:
Timestamp:
May 15, 2019 8:31:09 AM (6 years ago)
Author:
vboxsync
Message:

OHCI: Identify where unrecoverable error is coming from.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/USB/DevOHCI.cpp

    r78075 r78528  
    913913 * @returns nothing.
    914914 * @param   pThis               The OHCI instance.
    915  */
    916 DECLINLINE(void) ohciR3RaiseUnrecoverableError(POHCI pThis)
    917 {
    918     LogRelMax(10, ("OHCI#%d: Raising unrecoverable error\n", pThis->pDevInsR3->iInstance));
     915 * @param   iCode               Diagnostic code.
     916 */
     917DECLINLINE(void) ohciR3RaiseUnrecoverableError(POHCI pThis, int iCode)
     918{
     919    LogRelMax(10, ("OHCI#%d: Raising unrecoverable error (%d)\n", pThis->pDevInsR3->iInstance, iCode));
    919920    ohciR3SetInterrupt(pThis, OHCI_INTR_UNRECOVERABLE_ERROR);
    920921}
     
    26812682        if (!ohciR3BufInit(&Buf, pTd->cbp, pTd->be))
    26822683        {
    2683             ohciR3RaiseUnrecoverableError(pThis);
     2684            ohciR3RaiseUnrecoverableError(pThis, 1);
    26842685            return;
    26852686        }
     
    27122713                    && Buf.aVecs[1].cb > (cbLeft - Buf.aVecs[0].cb)))
    27132714            {
    2714                 ohciR3RaiseUnrecoverableError(pThis);
     2715                ohciR3RaiseUnrecoverableError(pThis, 2);
    27152716                return;
    27162717            }
     
    29762977    if (!ohciR3BufInit(&Buf, Td.cbp, Td.be))
    29772978    {
    2978         ohciR3RaiseUnrecoverableError(pThis);
     2979        ohciR3RaiseUnrecoverableError(pThis, 3);
    29792980        return false;
    29802981    }
     
    29982999                default:
    29993000                    Log(("ohciR3ServiceTd: Invalid direction!!!! Td.hwinfo=%#x Ed.hwdinfo=%#x\n", Td.hwinfo, pEd->hwinfo));
    3000                     ohciR3RaiseUnrecoverableError(pThis);
     3001                    ohciR3RaiseUnrecoverableError(pThis, 4);
    30013002                    return false;
    30023003            }
     
    30363037                && Buf.aVecs[1].cb > (pUrb->cbData - Buf.aVecs[0].cb)))
    30373038        {
    3038             ohciR3RaiseUnrecoverableError(pThis);
     3039            ohciR3RaiseUnrecoverableError(pThis, 5);
    30393040            VUSBIRhFreeUrb(pThis->RootHub.pIRhConn, pUrb);
    30403041            return false;
     
    31173118    if (!ohciR3BufInit(&Head.Buf, Head.Td.cbp, Head.Td.be))
    31183119    {
    3119         ohciR3RaiseUnrecoverableError(pThis);
     3120        ohciR3RaiseUnrecoverableError(pThis, 6);
    31203121        return false;
    31213122    }
     
    31393140        if (!ohciR3BufInit(&pCur->Buf, pCur->Td.cbp, pCur->Td.be))
    31403141        {
    3141             ohciR3RaiseUnrecoverableError(pThis);
     3142            ohciR3RaiseUnrecoverableError(pThis, 7);
    31423143            return false;
    31433144        }
     
    31753176                default:
    31763177                    Log(("ohciR3ServiceTdMultiple: Invalid direction!!!! Head.Td.hwinfo=%#x Ed.hwdinfo=%#x\n", Head.Td.hwinfo, pEd->hwinfo));
    3177                     ohciR3RaiseUnrecoverableError(pThis);
     3178                    ohciR3RaiseUnrecoverableError(pThis, 8);
    31783179                    return false;
    31793180            }
     
    33543355        default:
    33553356            Log(("ohciR3ServiceIsochronousTd: Invalid direction!!!! Ed.hwdinfo=%#x\n", pEd->hwinfo));
    3356             ohciR3RaiseUnrecoverableError(pThis);
     3357            ohciR3RaiseUnrecoverableError(pThis, 9);
    33573358            return false;
    33583359    }
     
    33873388        {
    33883389            Log(("ITdAddr=%RX32 PSW%d.offset=%#x < offPrev=%#x!\n", ITdAddr, iR, off, offPrev)); /* => Unrecoverable Error*/
    3389             ohciR3RaiseUnrecoverableError(pThis);
     3390            ohciR3RaiseUnrecoverableError(pThis, 10);
    33903391            return false;
    33913392        }
     
    33933394        {
    33943395            Log(("ITdAddr=%RX32 PSW%d.CC=%#x < 'Not Accessed'!\n", ITdAddr, iR, PSW >> ITD_PSW_CC_SHIFT)); /* => Unrecoverable Error*/
    3395             ohciR3RaiseUnrecoverableError(pThis);
     3396            ohciR3RaiseUnrecoverableError(pThis, 11);
    33963397            return false;
    33973398        }
     
    34063407    {
    34073408        Log(("ITdAddr=%RX32 offEnd=%#x < offPrev=%#x!\n", ITdAddr, offEnd, offPrev)); /* => Unrecoverable Error*/
    3408         ohciR3RaiseUnrecoverableError(pThis);
     3409        ohciR3RaiseUnrecoverableError(pThis, 12);
    34093410        return false;
    34103411    }
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