[PATCH ats_vtd v1 06/24] intel_iommu: do not consider wait_desc as an invalid descriptor

CLEMENT MATHIEU--DRIF posted 24 patches 1 year, 9 months ago
There is a newer version of this series
[PATCH ats_vtd v1 06/24] intel_iommu: do not consider wait_desc as an invalid descriptor
Posted by CLEMENT MATHIEU--DRIF 1 year, 9 months ago
Signed-off-by: Clément Mathieu--Drif <clement.mathieu--drif@eviden.com>
---
 hw/i386/intel_iommu.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
index 85a7ebac67..c475a354a0 100644
--- a/hw/i386/intel_iommu.c
+++ b/hw/i386/intel_iommu.c
@@ -3365,6 +3365,11 @@ static bool vtd_process_wait_desc(IntelIOMMUState *s, VTDInvDesc *inv_desc)
     } else if (inv_desc->lo & VTD_INV_DESC_WAIT_IF) {
         /* Interrupt flag */
         vtd_generate_completion_event(s);
+    } else if (inv_desc->lo & VTD_INV_DESC_WAIT_FN) {
+        /*
+         * SW = 0, IF = 0, FN = 1
+         * Nothing to do as we process the events sequentially
+         */
     } else {
         error_report_once("%s: invalid wait desc: hi=%"PRIx64", lo=%"PRIx64
                           " (unknown type)", __func__, inv_desc->hi,
-- 
2.44.0
RE: [PATCH ats_vtd v1 06/24] intel_iommu: do not consider wait_desc as an invalid descriptor
Posted by Duan, Zhenzhong 1 year, 9 months ago

>-----Original Message-----
>From: CLEMENT MATHIEU--DRIF <clement.mathieu--drif@eviden.com>
>Subject: [PATCH ats_vtd v1 06/24] intel_iommu: do not consider wait_desc
>as an invalid descriptor
>
>Signed-off-by: Clément Mathieu--Drif <clement.mathieu--drif@eviden.com>
>---
> hw/i386/intel_iommu.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
>diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
>index 85a7ebac67..c475a354a0 100644
>--- a/hw/i386/intel_iommu.c
>+++ b/hw/i386/intel_iommu.c
>@@ -3365,6 +3365,11 @@ static bool
>vtd_process_wait_desc(IntelIOMMUState *s, VTDInvDesc *inv_desc)
>     } else if (inv_desc->lo & VTD_INV_DESC_WAIT_IF) {
>         /* Interrupt flag */
>         vtd_generate_completion_event(s);
>+    } else if (inv_desc->lo & VTD_INV_DESC_WAIT_FN) {
>+        /*
>+         * SW = 0, IF = 0, FN = 1
>+         * Nothing to do as we process the events sequentially
>+         */
>     } else {
>         error_report_once("%s: invalid wait desc: hi=%"PRIx64", lo=%"PRIx64
>                           " (unknown type)", __func__, inv_desc->hi,

LGTM.

Thanks
Zhenzhong