VirtualBox

Changeset 89201 in vbox for trunk


Ignore:
Timestamp:
May 20, 2021 2:05:41 PM (4 years ago)
Author:
vboxsync
Message:

Intel IOMMU: bugref:9967 Address translation, WIP.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/iommu-intel.h

    r89001 r89201  
    15551555
    15561556/** Invalidation Queue Error Information. */
    1557 typedef enum VTD_IQEI_T
     1557typedef enum VTDIQEI
    15581558{
    1559     kIqei_InfoNotAvailable = 0,
    1560     kIqei_InvalidTailPointer,
    1561     kIqei_FetchDescriptorError,
    1562     kIqei_InvalidDescriptorType,
    1563     kIqei_RsvdFieldViolation,
    1564     kIqei_InvalidDescriptorWidth,
    1565     kIqei_QueueTailNotAligned,
    1566     kIqei_InvalidTtm
    1567 } VTD_IQEI_T;
     1559    VTDIQEI_INFO_NOT_AVAILABLE,
     1560    VTDIQEI_INVALID_TAIL_PTR,
     1561    VTDIQEI_FETCH_DESCRIPTOR_ERR,
     1562    VTDIQEI_INVALID_DESCRIPTOR_TYPE,
     1563    VTDIQEI_RSVD_FIELD_VIOLATION,
     1564    VTDIQEI_INVALID_DESCRIPTOR_WIDTH,
     1565    VTDIQEI_QUEUE_TAIL_MISALIGNED,
     1566    VTDIQEI_INVALID_TTM
     1567} VTDIQEI;
    15681568/** @} */
    15691569
     
    22982298 * In accordance with the Intel spec.
    22992299 * @{ */
    2300 typedef enum VTD_IR_FAULT_T
     2300typedef enum VTDINTRFAULT
    23012301{
    23022302    /** Reserved bits invalid in remappable interrupt. */
    2303     kIrf_Remappable_Intr_Rsvd = 0x20,
     2303    VTDINTRFAULT_REMAPPABLE_INTR_RSVD = 0x20,
    23042304    /** Interrupt index for remappable interrupt exceeds table size or referenced
    23052305     *  address above host address width (HAW) */
    2306     kIrf_Intr_Index_Invalid = 0x21,
     2306    VTDINTRFAULT_INTR_INDEX_INVALID = 0x21,
    23072307    /** The IRTE is not present.  */
    2308     kIrf_Irte_Not_Present = 0x22,
     2308    VTDINTRFAULT_IRTE_NOT_PRESENT = 0x22,
    23092309    /** Reading IRTE from memory failed. */
    2310     kIrf_Irte_Read_Failed = 0x23,
     2310    VTDINTRFAULT_IRTE_READ_FAILED = 0x23,
    23112311    /** IRTE reserved bits invalid for an IRTE with Present bit set. */
    2312     kIrf_Irte_Present_Rsvd = 0x24,
    2313     /** Compatibility format interrupt (CFI) blocked due to EIME is enabled or CFIs
    2314      *  disabled. */
    2315     kIrf_Cfi_Blocked = 0x25,
     2312    VTDINTRFAULT_IRTE_PRESENT_RSVD = 0x24,
     2313    /** Compatibility format interrupt (CFI) blocked due to EIME being enabled or CFIs
     2314     *  were disabled. */
     2315    VTDINTRFAULT_CFI_BLOCKED = 0x25,
    23162316    /** IRTE SID, SVT, SQ bits invalid for an IRTE with Present bit set. */
    2317     kIrf_Irte_Present_Invalid = 0x26,
     2317    VTDINTRFAULT_IRTE_PRESENT_INVALID = 0x26,
    23182318    /** Reading posted interrupt descriptor (PID) failed. */
    2319     kIrf_Pid_Read_Failed = 0x27,
     2319    VTDINTRFAULT_PID_READ_FAILED = 0x27,
    23202320    /** PID reserved bits invalid. */
    2321     kIrf_Pid_Rsvd = 0x28,
     2321    VTDINTRFAULT_PID_RSVD = 0x28,
    23222322    /** Untranslated interrupt requested (without PASID) is invalid. */
    2323     kIrf_Ir_Without_Pasid_Invalid = 0x29
    2324 } VTD_IR_FAULT_T;
     2323    VTDINTRFAULT_IR_WITHOUT_PASID_INVALID = 0x29
     2324} VTDINTRFAULT;
     2325/** @} */
     2326
     2327
     2328/** @name Address Translation Fault Conditions.
     2329 * In accordance with the Intel spec.
     2330 * @{ */
     2331typedef enum VTDADDRFAULT
     2332{
     2333    /* Legacy root table faults (LRT). */
     2334    VTDADDRFAULT_LRT_1   = 0x8,
     2335    VTDADDRFAULT_LRT_2   = 0x1,
     2336    VTDADDRFAULT_LRT_3   = 0xa,
     2337
     2338    /* Legacy Context-Table Faults (LCT). */
     2339    VTDADDRFAULT_LCT_1   = 0x9,
     2340    VTDADDRFAULT_LCT_2   = 0x2,
     2341    VTDADDRFAULT_LCT_3   = 0xb,
     2342    VTDADDRFAULT_LCT_4_0 = 0x3,
     2343    VTDADDRFAULT_LCT_4_1 = 0x3,
     2344    VTDADDRFAULT_LCT_4_2 = 0x3,
     2345    VTDADDRFAULT_LCT_4_3 = 0x3,
     2346    VTDADDRFAULT_LCT_5   = 0xd,
     2347
     2348    /* Legacy Second-Level Table Faults (LSL). */
     2349    VTDADDRFAULT_LSL_1   = 0x7,
     2350    VTDADDRFAULT_LSL_2   = 0xc,
     2351
     2352    /* Legacy General Faults (LGN). */
     2353    VTDADDRFAULT_LGN_1_0 = 0x4,
     2354    VTDADDRFAULT_LGN_1_1 = 0x4,
     2355    VTDADDRFAULT_LGN_1_2 = 0x4,
     2356    VTDADDRFAULT_LGN_1_3 = 0x4,
     2357    VTDADDRFAULT_LGN_2   = 0x5,
     2358    VTDADDRFAULT_LGN_3   = 0x6,
     2359    VTDADDRFAULT_LGN_4   = 0xe,
     2360
     2361    /* Root-Table Address Register Faults (RTA). */
     2362    VTDADDRFAULT_RTA_1_0 = 0x30,
     2363    VTDADDRFAULT_RTA_1_1 = 0x30,
     2364    VTDADDRFAULT_RTA_1_2 = 0x30,
     2365    VTDADDRFAULT_RTA_1_3 = 0x30,
     2366    VTDADDRFAULT_RTA_2   = 0x31,
     2367    VTDADDRFAULT_RTA_3   = 0x32,
     2368    VTDADDRFAULT_RTA_4   = 0x33,
     2369
     2370    /* Scalable-Mode Root-Table Faults (SRT). */
     2371    VTDADDRFAULT_SRT_1   = 0x38,
     2372    VTDADDRFAULT_SRT_2   = 0x39,
     2373    VTDADDRFAULT_SRT_3   = 0x3a,
     2374
     2375    /* Scalable-Mode Context-Table Faults (SCT). */
     2376    VTDADDRFAULT_SCT_1   = 0x40,
     2377    VTDADDRFAULT_SCT_2   = 0x41,
     2378    VTDADDRFAULT_SCT_3   = 0x42,
     2379    VTDADDRFAULT_SCT_4_0 = 0x43,
     2380    VTDADDRFAULT_SCT_4_1 = 0x43,
     2381    VTDADDRFAULT_SCT_4_2 = 0x43,
     2382    VTDADDRFAULT_SCT_5   = 0x44,
     2383    VTDADDRFAULT_SCT_6   = 0x45,
     2384    VTDADDRFAULT_SCT_7   = 0x46,
     2385    VTDADDRFAULT_SCT_8   = 0x47,
     2386    VTDADDRFAULT_SCT_9   = 0x48,
     2387
     2388    /* Scalable-Mode PASID-Directory Faults (SPD). */
     2389    VTDADDRFAULT_SPD_1   = 0x50,
     2390    VTDADDRFAULT_SPD_2   = 0x51,
     2391    VTDADDRFAULT_SPD_3   = 0x52,
     2392
     2393    /* Scalable-Mode PASID-Table Faults (SPT). */
     2394    VTDADDRFAULT_SPT_1   = 0x58,
     2395    VTDADDRFAULT_SPT_2   = 0x59,
     2396    VTDADDRFAULT_SPT_3   = 0x5a,
     2397    VTDADDRFAULT_SPT_4_0 = 0x5b,
     2398    VTDADDRFAULT_SPT_4_1 = 0x5b,
     2399    VTDADDRFAULT_SPT_4_2 = 0x5b,
     2400    VTDADDRFAULT_SPT_4_3 = 0x5b,
     2401    VTDADDRFAULT_SPT_4_4 = 0x5b,
     2402    VTDADDRFAULT_SPT_5   = 0x5c,
     2403    VTDADDRFAULT_SPT_6   = 0x5d,
     2404
     2405    /* Scalable-Mode First-Level Table Faults (SFL). */
     2406    VTDADDRFAULT_SFL_1   = 0x70,
     2407    VTDADDRFAULT_SFL_2   = 0x71,
     2408    VTDADDRFAULT_SFL_3   = 0x72,
     2409    VTDADDRFAULT_SFL_4   = 0x73,
     2410    VTDADDRFAULT_SFL_5   = 0x74,
     2411    VTDADDRFAULT_SFL_6   = 0x75,
     2412    VTDADDRFAULT_SFL_7   = 0x76,
     2413    VTDADDRFAULT_SFL_8   = 0x77,
     2414    VTDADDRFAULT_SFL_9   = 0x90,
     2415    VTDADDRFAULT_SFL_10  = 0x91,
     2416
     2417    /* Scalable-Mode Second-Level Table Faults (SSL). */
     2418    VTDADDRFAULT_SSL_1   = 0x78,
     2419    VTDADDRFAULT_SSL_2   = 0x79,
     2420    VTDADDRFAULT_SSL_3   = 0x7a,
     2421    VTDADDRFAULT_SSL_4   = 0x7b,
     2422    VTDADDRFAULT_SSL_5   = 0x7c,
     2423    VTDADDRFAULT_SSL_6   = 0x7d,
     2424
     2425    /* Scalable-Mode General Faults (SGN). */
     2426    VTDADDRFAULT_SGN_1   = 0x80,
     2427    VTDADDRFAULT_SGN_2   = 0x81,
     2428    VTDADDRFAULT_SGN_3   = 0x82,
     2429    VTDADDRFAULT_SGN_4_0 = 0x83,
     2430    VTDADDRFAULT_SGN_4_1 = 0x83,
     2431    VTDADDRFAULT_SGN_4_2 = 0x83,
     2432    VTDADDRFAULT_SGN_5   = 0x84,
     2433    VTDADDRFAULT_SGN_6   = 0x85,
     2434    VTDADDRFAULT_SGN_7   = 0x86,
     2435    VTDADDRFAULT_SGN_8   = 0x87,
     2436    VTDADDRFAULT_SGN_9   = 0x88,
     2437    VTDADDRFAULT_SGN_10  = 0x89
     2438} VTDATFAULT;
    23252439/** @} */
    23262440
  • trunk/src/VBox/Devices/Bus/DevIommuIntel.cpp

    r89195 r89201  
    661661 *
    662662 * @returns @c true if qualified, @c false otherwise.
    663  * @param   enmIrFault  The interrupt remapping fault condition.
    664  */
    665 static bool vtdIrFaultIsQualified(VTD_IR_FAULT_T enmIrFault)
    666 {
    667     switch (enmIrFault)
    668     {
    669         case kIrf_Irte_Not_Present:
    670         case kIrf_Irte_Present_Rsvd:
    671         case kIrf_Irte_Present_Invalid:
    672         case kIrf_Pid_Read_Failed:
    673         case kIrf_Pid_Rsvd:
     663 * @param   enmIntrFault    The interrupt remapping fault condition.
     664 */
     665static bool vtdIrFaultIsQualified(VTDINTRFAULT enmIntrFault)
     666{
     667    switch (enmIntrFault)
     668    {
     669        case VTDINTRFAULT_IRTE_NOT_PRESENT:
     670        case VTDINTRFAULT_IRTE_PRESENT_RSVD:
     671        case VTDINTRFAULT_IRTE_PRESENT_INVALID:
     672        case VTDINTRFAULT_PID_READ_FAILED:
     673        case VTDINTRFAULT_PID_RSVD:
    674674            return true;
    675675        default:
     
    12391239 * Records an interrupt request fault.
    12401240 *
    1241  * @param   pDevIns     The IOMMU device instance.
    1242  * @param   enmDiag     The diagnostic reason.
    1243  * @param   enmIrFault  The interrupt fault reason.
    1244  * @param   idDevice    The device ID (bus, device, function).
    1245  * @param   idxIntr     The interrupt index.
    1246  */
    1247 static void dmarIrFaultRecord(PPDMDEVINS pDevIns, DMARDIAG enmDiag, VTD_IR_FAULT_T enmIrFault, uint16_t idDevice,
     1241 * @param   pDevIns         The IOMMU device instance.
     1242 * @param   enmDiag         The diagnostic reason.
     1243 * @param   enmIntrFault    The interrupt fault reason.
     1244 * @param   idDevice        The device ID (bus, device, function).
     1245 * @param   idxIntr         The interrupt index.
     1246 */
     1247static void dmarIrFaultRecord(PPDMDEVINS pDevIns, DMARDIAG enmDiag, VTDINTRFAULT enmIntrFault, uint16_t idDevice,
    12481248                              uint16_t idxIntr)
    12491249{
     
    12631263        /* Update the fault recording registers with the fault information. */
    12641264        uint64_t const uFrcdHi = RT_BF_MAKE(VTD_BF_1_FRCD_REG_SID, idDevice)
    1265                                | RT_BF_MAKE(VTD_BF_1_FRCD_REG_FR,  enmIrFault)
     1265                               | RT_BF_MAKE(VTD_BF_1_FRCD_REG_FR,  enmIntrFault)
    12661266                               | RT_BF_MAKE(VTD_BF_1_FRCD_REG_F,   1);
    12671267        uint64_t const uFrcdLo = (uint64_t)idxIntr << 48;
     
    12861286 * in the IRTE.
    12871287 *
    1288  * @param   pDevIns     The IOMMU device instance.
    1289  * @param   enmDiag     The diagnostic reason.
    1290  * @param   enmIrFault  The interrupt fault reason.
    1291  * @param   idDevice    The device ID (bus, device, function).
    1292  * @param   idxIntr     The interrupt index.
    1293  * @param   pIrte       The IRTE that caused this fault.
    1294  */
    1295 static void dmarIrFaultRecordQualified(PPDMDEVINS pDevIns, DMARDIAG enmDiag, VTD_IR_FAULT_T enmIrFault, uint16_t idDevice,
     1288 * @param   pDevIns         The IOMMU device instance.
     1289 * @param   enmDiag         The diagnostic reason.
     1290 * @param   enmIntrFault    The interrupt fault reason.
     1291 * @param   idDevice        The device ID (bus, device, function).
     1292 * @param   idxIntr         The interrupt index.
     1293 * @param   pIrte           The IRTE that caused this fault.
     1294 */
     1295static void dmarIrFaultRecordQualified(PPDMDEVINS pDevIns, DMARDIAG enmDiag, VTDINTRFAULT enmIntrFault, uint16_t idDevice,
    12961296                                       uint16_t idxIntr, PCVTD_IRTE_T pIrte)
    12971297{
    1298     Assert(vtdIrFaultIsQualified(enmIrFault));
     1298    Assert(vtdIrFaultIsQualified(enmIntrFault));
    12991299    Assert(pIrte);
    13001300    if (!(pIrte->au64[0] & VTD_BF_0_IRTE_FPD_MASK))
    1301         return dmarIrFaultRecord(pDevIns, enmDiag, enmIrFault, idDevice, idxIntr);
     1301        return dmarIrFaultRecord(pDevIns, enmDiag, enmIntrFault, idDevice, idxIntr);
    13021302}
    13031303
     
    13101310 * @param   enmDiag     The diagnostic reason.
    13111311 */
    1312 static void dmarIqeFaultRecord(PPDMDEVINS pDevIns, DMARDIAG enmDiag, VTD_IQEI_T enmIqei)
     1312static void dmarIqeFaultRecord(PPDMDEVINS pDevIns, DMARDIAG enmDiag, VTDIQEI enmIqei)
    13131313{
    13141314    PDMAR    pThis   = PDMDEVINS_2_DATA(pDevIns, PDMAR);
     
    15391539        /* Hardware treats bit 4 as RsvdZ in this situation, so clear it. */
    15401540        dmarRegChangeRaw32(pThis, offReg, ~RT_BIT(4), 0 /* fOrMask */);
    1541         dmarIqeFaultRecord(pDevIns, kDmarDiag_IqtReg_Qt_NotAligned, kIqei_QueueTailNotAligned);
     1541        dmarIqeFaultRecord(pDevIns, kDmarDiag_IqtReg_Qt_NotAligned, VTDIQEI_QUEUE_TAIL_MISALIGNED);
    15421542    }
    15431543    return VINF_SUCCESS;
     
    15701570        { /* likely */ }
    15711571        else
    1572             dmarIqeFaultRecord(pDevIns, kDmarDiag_IqaReg_Dw_256_Invalid, kIqei_InvalidDescriptorWidth);
     1572            dmarIqeFaultRecord(pDevIns, kDmarDiag_IqaReg_Dw_256_Invalid, VTDIQEI_INVALID_DESCRIPTOR_WIDTH);
    15731573    }
    15741574    /* else: 128-bit descriptor width is validated lazily, see explanation in dmarR3InvQueueProcessRequests. */
     
    17011701
    17021702    DMAR_LOCK(pDevIns, pThisCC);
    1703     uint32_t const uGstsReg = dmarRegReadRaw32(pThis, VTD_MMIO_OFF_GSTS_REG);
     1703    uint32_t const uGstsReg   = dmarRegReadRaw32(pThis, VTD_MMIO_OFF_GSTS_REG);
     1704    uint64_t const uRtaddrReg = pThis->uRtaddrReg;
    17041705    DMAR_UNLOCK(pDevIns, pThisCC);
     1706
    17051707
    17061708    if (uGstsReg & VTD_BF_GSTS_REG_TES_MASK)
     
    17101712        else
    17111713            STAM_COUNTER_INC(&pThis->CTX_SUFF_Z(StatMemWrite));
     1714
     1715        uint8_t const fTtm = RT_BF_GET(uRtaddrReg, VTD_BF_RTADDR_REG_TTM);
     1716        switch (fTtm)
     1717        {
     1718            case VTD_TTM_LEGACY_MODE:
     1719            case VTD_TTM_ABORT_DMA_MODE:
     1720            {
     1721                if (pThis->fExtCapReg & VTD_BF_ECAP_REG_ADMS_MASK)
     1722                {
     1723
     1724                }
     1725            }
     1726        }
    17121727
    17131728        return VERR_NOT_IMPLEMENTED;
     
    18841899                                return VINF_SUCCESS;
    18851900                            }
    1886                             dmarIrFaultRecordQualified(pDevIns, kDmarDiag_Ir_Rfi_Irte_Mode_Invalid, kIrf_Irte_Present_Rsvd,
    1887                                                        idDevice, idxIntr, &Irte);
     1901                            dmarIrFaultRecordQualified(pDevIns, kDmarDiag_Ir_Rfi_Irte_Mode_Invalid,
     1902                                                       VTDINTRFAULT_IRTE_PRESENT_RSVD, idDevice, idxIntr, &Irte);
    18881903                        }
    18891904                        else
    1890                             dmarIrFaultRecordQualified(pDevIns, enmIrDiag, kIrf_Irte_Present_Rsvd, idDevice, idxIntr, &Irte);
     1905                            dmarIrFaultRecordQualified(pDevIns, enmIrDiag, VTDINTRFAULT_IRTE_PRESENT_RSVD, idDevice, idxIntr,
     1906                                                       &Irte);
    18911907                    }
    18921908                    else
    1893                         dmarIrFaultRecordQualified(pDevIns, kDmarDiag_Ir_Rfi_Irte_Rsvd, kIrf_Irte_Present_Rsvd, idDevice,
     1909                        dmarIrFaultRecordQualified(pDevIns, kDmarDiag_Ir_Rfi_Irte_Rsvd, VTDINTRFAULT_IRTE_PRESENT_RSVD, idDevice,
    18941910                                                   idxIntr, &Irte);
    18951911                }
    18961912                else
    1897                     dmarIrFaultRecordQualified(pDevIns, kDmarDiag_Ir_Rfi_Irte_Not_Present, kIrf_Irte_Not_Present, idDevice,
    1898                                                idxIntr, &Irte);
     1913                    dmarIrFaultRecordQualified(pDevIns, kDmarDiag_Ir_Rfi_Irte_Not_Present, VTDINTRFAULT_IRTE_NOT_PRESENT,
     1914                                               idDevice, idxIntr, &Irte);
    18991915            }
    19001916            else
    1901                 dmarIrFaultRecord(pDevIns, kDmarDiag_Ir_Rfi_Irte_Read_Failed, kIrf_Irte_Read_Failed, idDevice, idxIntr);
     1917                dmarIrFaultRecord(pDevIns, kDmarDiag_Ir_Rfi_Irte_Read_Failed, VTDINTRFAULT_IRTE_READ_FAILED, idDevice, idxIntr);
    19021918        }
    19031919        else
    1904             dmarIrFaultRecord(pDevIns, kDmarDiag_Ir_Rfi_Intr_Index_Invalid, kIrf_Intr_Index_Invalid, idDevice, idxIntr);
     1920            dmarIrFaultRecord(pDevIns, kDmarDiag_Ir_Rfi_Intr_Index_Invalid, VTDINTRFAULT_INTR_INDEX_INVALID, idDevice, idxIntr);
    19051921    }
    19061922    else
    1907         dmarIrFaultRecord(pDevIns, kDmarDiag_Ir_Rfi_Rsvd, kIrf_Remappable_Intr_Rsvd, idDevice, 0 /* idxIntr */);
     1923        dmarIrFaultRecord(pDevIns, kDmarDiag_Ir_Rfi_Rsvd, VTDINTRFAULT_REMAPPABLE_INTR_RSVD, idDevice, 0 /* idxIntr */);
    19081924    return VERR_IOMMU_INTR_REMAP_DENIED;
    19091925}
     
    19491965                || !(uGstsReg & VTD_BF_GSTS_REG_CFIS_MASK))
    19501966            {
    1951                 dmarIrFaultRecord(pDevIns, kDmarDiag_Ir_Cfi_Blocked, kIrf_Cfi_Blocked, idDevice, 0 /* idxIntr */);
     1967                dmarIrFaultRecord(pDevIns, kDmarDiag_Ir_Cfi_Blocked, VTDINTRFAULT_CFI_BLOCKED, idDevice, 0 /* idxIntr */);
    19521968                return VERR_IOMMU_INTR_REMAP_DENIED;
    19531969            }
     
    21472163    { /* likely */ }
    21482164    else
    2149         DMAR_IQE_FAULT_RECORD_RET(kDmarDiag_IqaReg_Dw_128_Invalid, kIqei_InvalidDescriptorWidth);
     2165        DMAR_IQE_FAULT_RECORD_RET(kDmarDiag_IqaReg_Dw_128_Invalid, VTDIQEI_INVALID_DESCRIPTOR_WIDTH);
    21502166#endif
    21512167
     
    21692185                { /* likely */  }
    21702186                else
    2171                     DMAR_IQE_FAULT_RECORD_RET(kDmarDiag_Iqei_Inv_Wait_Dsc_Invalid, kIqei_InvalidDescriptorType);
     2187                    DMAR_IQE_FAULT_RECORD_RET(kDmarDiag_Iqei_Inv_Wait_Dsc_Invalid, VTDIQEI_INVALID_DESCRIPTOR_TYPE);
    21722188
    21732189                /* Validate reserved bits. */
     
    21792195                { /* likely */ }
    21802196                else
    2181                     DMAR_IQE_FAULT_RECORD_RET(kDmarDiag_Iqei_Inv_Wait_Dsc_0_1_Rsvd, kIqei_RsvdFieldViolation);
     2197                    DMAR_IQE_FAULT_RECORD_RET(kDmarDiag_Iqei_Inv_Wait_Dsc_0_1_Rsvd, VTDIQEI_RSVD_FIELD_VIOLATION);
    21822198
    21832199                if (fDw == VTD_IQA_REG_DW_256_BIT)
     
    21872203                    { /* likely */ }
    21882204                    else
    2189                         DMAR_IQE_FAULT_RECORD_RET(kDmarDiag_Iqei_Inv_Wait_Dsc_2_3_Rsvd, kIqei_RsvdFieldViolation);
     2205                        DMAR_IQE_FAULT_RECORD_RET(kDmarDiag_Iqei_Inv_Wait_Dsc_2_3_Rsvd, VTDIQEI_RSVD_FIELD_VIOLATION);
    21902206                }
    21912207
     
    22242240                /* Stop processing further requests. */
    22252241                LogFunc(("Invalid descriptor type: %#x\n", fDscType));
    2226                 DMAR_IQE_FAULT_RECORD_RET(kDmarDiag_Iqei_Dsc_Type_Invalid, kIqei_InvalidDescriptorType);
     2242                DMAR_IQE_FAULT_RECORD_RET(kDmarDiag_Iqei_Dsc_Type_Invalid, VTDIQEI_INVALID_DESCRIPTOR_TYPE);
    22272243            }
    22282244        }
     
    23662382                    }
    23672383                    else
    2368                         dmarIqeFaultRecord(pDevIns, kDmarDiag_IqaReg_Dsc_Fetch_Error, kIqei_FetchDescriptorError);
     2384                        dmarIqeFaultRecord(pDevIns, kDmarDiag_IqaReg_Dsc_Fetch_Error, VTDIQEI_FETCH_DESCRIPTOR_ERR);
    23692385                }
    23702386                else
    23712387                {
    23722388                    if (fTtm == VTD_TTM_RSVD)
    2373                         dmarIqeFaultRecord(pDevIns, kDmarDiag_Iqei_Ttm_Rsvd, kIqei_InvalidTtm);
     2389                        dmarIqeFaultRecord(pDevIns, kDmarDiag_Iqei_Ttm_Rsvd, VTDIQEI_INVALID_TTM);
    23742390                    else
    23752391                    {
    23762392                        Assert(offQueueTail >= cbQueue);
    2377                         dmarIqeFaultRecord(pDevIns, kDmarDiag_IqtReg_Qt_Invalid, kIqei_InvalidTailPointer);
     2393                        dmarIqeFaultRecord(pDevIns, kDmarDiag_IqtReg_Qt_Invalid, VTDIQEI_INVALID_TAIL_PTR);
    23782394                    }
    23792395                }
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