VirtualBox

Changeset 34142 in vbox for trunk/src/VBox/Devices/Storage


Ignore:
Timestamp:
Nov 17, 2010 6:37:52 PM (14 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
67862
Message:

AHCI: Better fix for r67808. Don't ignore the return values for R3 usage and use better status code for rcBusy

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Storage/DevAHCI.cpp

    r34106 r34142  
    998998    PAHCI pAhci = (PAHCI)pvUser;
    999999
    1000     ahciHbaSetInterrupt(pAhci, pAhci->uCccPortNr, VINF_SUCCESS);
     1000    int rc = ahciHbaSetInterrupt(pAhci, pAhci->uCccPortNr, VERR_IGNORED);
     1001    AssertRC(rc);
    10011002}
    10021003#endif
     
    11641165
    11651166                if (pAhciPort->regIE & AHCI_PORT_IE_DHRE)
    1166                     ahciHbaSetInterrupt(pAhciPort->CTX_SUFF(pAhci), pAhciPort->iLUN, VINF_SUCCESS);
     1167                {
     1168                    int rc = ahciHbaSetInterrupt(pAhciPort->CTX_SUFF(pAhci), pAhciPort->iLUN, VERR_IGNORED);
     1169                    AssertRC(rc);
     1170                }
    11671171            }
    11681172       }
     
    12411245static int PortCmd_w(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t u32Value)
    12421246{
    1243     int rc = VINF_SUCCESS;
    12441247    ahciLog(("%s: write u32Value=%#010x\n", __FUNCTION__, u32Value));
    12451248    ahciLog(("%s: ICC=%d ASP=%d ALPE=%d DLAE=%d ATAPI=%d CPD=%d ISP=%d HPCP=%d PMA=%d CPS=%d CR=%d FR=%d ISS=%d CCS=%d FRE=%d CLO=%d POD=%d SUD=%d ST=%d\n",
     
    13091312
    13101313                if (pAhciPort->regIE & AHCI_PORT_IE_DHRE)
    1311                     ahciHbaSetInterrupt(pAhciPort->CTX_SUFF(pAhci), pAhciPort->iLUN, VINF_SUCCESS);
     1314                {
     1315                    int rc = ahciHbaSetInterrupt(pAhciPort->CTX_SUFF(pAhci), pAhciPort->iLUN, VERR_IGNORED);
     1316                    AssertRC(rc);
     1317                }
    13121318#endif
    13131319            }
     
    13461352    pAhciPort->regCMD = u32Value;
    13471353
    1348     return rc;
     1354    return VINF_SUCCESS;
    13491355}
    13501356
     
    44534459static void ahciFinishStorageDeviceReset(PAHCIPort pAhciPort, PAHCIPORTTASKSTATE pAhciPortTaskState)
    44544460{
     4461    int rc;
     4462
    44554463    /* Send a status good D2H FIS. */
    44564464    ASMAtomicWriteU32(&pAhciPort->MediaEventStatus, ATA_EVENT_STATUS_UNCHANGED);
     
    44664474    ASMAtomicOrU32(&pAhciPort->u32TasksFinished, (1 << pAhciPortTaskState->uTag));
    44674475
    4468     ahciHbaSetInterrupt(pAhciPort->CTX_SUFF(pAhci), pAhciPort->iLUN, VINF_SUCCESS);
     4476    rc = ahciHbaSetInterrupt(pAhciPort->CTX_SUFF(pAhci), pAhciPort->iLUN, VERR_IGNORED);
     4477    AssertRC(rc);
    44694478}
    44704479
     
    45474556
    45484557        if (fAssertIntr)
    4549             ahciHbaSetInterrupt(pAhci, pAhciPort->iLUN, VINF_SUCCESS);
     4558        {
     4559            int rc = ahciHbaSetInterrupt(pAhci, pAhciPort->iLUN, VERR_IGNORED);
     4560            AssertRC(rc);
     4561        }
    45504562    }
    45514563}
     
    46114623
    46124624        if (fAssertIntr)
    4613             ahciHbaSetInterrupt(pAhci, pAhciPort->iLUN, VINF_SUCCESS);
     4625        {
     4626            int rc = ahciHbaSetInterrupt(pAhci, pAhciPort->iLUN, VERR_IGNORED);
     4627            AssertRC(rc);
     4628        }
    46144629    }
    46154630}
     
    71987213        pAhciPort->regSERR |= AHCI_PORT_SERR_N;
    71997214        if (pAhciPort->regIE & AHCI_PORT_IE_CPDE)
    7200             ahciHbaSetInterrupt(pAhciPort->CTX_SUFF(pAhci), pAhciPort->iLUN, VINF_SUCCESS);
     7215        {
     7216            int rc = ahciHbaSetInterrupt(pAhciPort->CTX_SUFF(pAhci), pAhciPort->iLUN, VERR_IGNORED);
     7217            AssertRC(rc);
     7218        }
    72017219    }
    72027220}
     
    72357253        pAhciPort->regSERR |= AHCI_PORT_SERR_N;
    72367254        if (pAhciPort->regIE & AHCI_PORT_IE_CPDE)
    7237             ahciHbaSetInterrupt(pAhciPort->CTX_SUFF(pAhci), pAhciPort->iLUN, VINF_SUCCESS);
     7255        {
     7256            int rc = ahciHbaSetInterrupt(pAhciPort->CTX_SUFF(pAhci), pAhciPort->iLUN, VERR_IGNORED);
     7257            AssertRC(rc);
     7258        }
    72387259    }
    72397260}
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