In vtd_process_inv_desc(), VTD_INV_DESC_PC and VTD_INV_DESC_PIOTLB are
bypassed without scalable mode check. These two types are not valid
in legacy mode and we should report error.
Fixes: 4a4f219e8a1 ("intel_iommu: add scalable-mode option to make scalable mode work")
Suggested-by: Yi Liu <yi.l.liu@intel.com>
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Clément Mathieu--Drif<clement.mathieu--drif@eviden.com>
Reviewed-by: Yi Liu <yi.l.liu@intel.com>
---
hw/i386/intel_iommu.c | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
index 68cb72a481..90cd4e5044 100644
--- a/hw/i386/intel_iommu.c
+++ b/hw/i386/intel_iommu.c
@@ -2763,17 +2763,6 @@ static bool vtd_process_inv_desc(IntelIOMMUState *s)
}
break;
- /*
- * TODO: the entity of below two cases will be implemented in future series.
- * To make guest (which integrates scalable mode support patch set in
- * iommu driver) work, just return true is enough so far.
- */
- case VTD_INV_DESC_PC:
- break;
-
- case VTD_INV_DESC_PIOTLB:
- break;
-
case VTD_INV_DESC_WAIT:
trace_vtd_inv_desc("wait", inv_desc.hi, inv_desc.lo);
if (!vtd_process_wait_desc(s, &inv_desc)) {
@@ -2795,6 +2784,17 @@ static bool vtd_process_inv_desc(IntelIOMMUState *s)
}
break;
+ /*
+ * TODO: the entity of below two cases will be implemented in future series.
+ * To make guest (which integrates scalable mode support patch set in
+ * iommu driver) work, just return true is enough so far.
+ */
+ case VTD_INV_DESC_PC:
+ case VTD_INV_DESC_PIOTLB:
+ if (s->scalable_mode) {
+ break;
+ }
+ /* fallthrough */
default:
error_report_once("%s: invalid inv desc: hi=%"PRIx64", lo=%"PRIx64
" (unknown type)", __func__, inv_desc.hi,
--
2.34.1
On 2024/8/14 10:26, Zhenzhong Duan wrote: > In vtd_process_inv_desc(), VTD_INV_DESC_PC and VTD_INV_DESC_PIOTLB are > bypassed without scalable mode check. These two types are not valid > in legacy mode and we should report error. > > Fixes: 4a4f219e8a1 ("intel_iommu: add scalable-mode option to make scalable mode work") 4a4f219e8a10 would be better. :) > Suggested-by: Yi Liu <yi.l.liu@intel.com> > Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com> > Reviewed-by: Clément Mathieu--Drif<clement.mathieu--drif@eviden.com> > Reviewed-by: Yi Liu <yi.l.liu@intel.com> > --- > hw/i386/intel_iommu.c | 22 +++++++++++----------- > 1 file changed, 11 insertions(+), 11 deletions(-) > > diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c > index 68cb72a481..90cd4e5044 100644 > --- a/hw/i386/intel_iommu.c > +++ b/hw/i386/intel_iommu.c > @@ -2763,17 +2763,6 @@ static bool vtd_process_inv_desc(IntelIOMMUState *s) > } > break; > > - /* > - * TODO: the entity of below two cases will be implemented in future series. > - * To make guest (which integrates scalable mode support patch set in > - * iommu driver) work, just return true is enough so far. > - */ > - case VTD_INV_DESC_PC: > - break; > - > - case VTD_INV_DESC_PIOTLB: > - break; > - > case VTD_INV_DESC_WAIT: > trace_vtd_inv_desc("wait", inv_desc.hi, inv_desc.lo); > if (!vtd_process_wait_desc(s, &inv_desc)) { > @@ -2795,6 +2784,17 @@ static bool vtd_process_inv_desc(IntelIOMMUState *s) > } > break; > > + /* > + * TODO: the entity of below two cases will be implemented in future series. > + * To make guest (which integrates scalable mode support patch set in > + * iommu driver) work, just return true is enough so far. > + */ > + case VTD_INV_DESC_PC: > + case VTD_INV_DESC_PIOTLB: > + if (s->scalable_mode) { > + break; > + } > + /* fallthrough */ > default: > error_report_once("%s: invalid inv desc: hi=%"PRIx64", lo=%"PRIx64 > " (unknown type)", __func__, inv_desc.hi, -- Regards, Yi Liu
>-----Original Message----- >From: Liu, Yi L <yi.l.liu@intel.com> >Subject: Re: [PATCH v3 2/2] intel_iommu: Make PASID-cache and PIOTLB >type invalid in legacy mode > >On 2024/8/14 10:26, Zhenzhong Duan wrote: >> In vtd_process_inv_desc(), VTD_INV_DESC_PC and VTD_INV_DESC_PIOTLB >are >> bypassed without scalable mode check. These two types are not valid >> in legacy mode and we should report error. >> >> Fixes: 4a4f219e8a1 ("intel_iommu: add scalable-mode option to make >scalable mode work") > >4a4f219e8a10 would be better. :) Ah, OK, Michael, let me know if you want me send a new version. Thanks Zhenzhong > >> Suggested-by: Yi Liu <yi.l.liu@intel.com> >> Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com> >> Reviewed-by: Clément Mathieu--Drif<clement.mathieu--drif@eviden.com> >> Reviewed-by: Yi Liu <yi.l.liu@intel.com> >> --- >> hw/i386/intel_iommu.c | 22 +++++++++++----------- >> 1 file changed, 11 insertions(+), 11 deletions(-) >> >> diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c >> index 68cb72a481..90cd4e5044 100644 >> --- a/hw/i386/intel_iommu.c >> +++ b/hw/i386/intel_iommu.c >> @@ -2763,17 +2763,6 @@ static bool >vtd_process_inv_desc(IntelIOMMUState *s) >> } >> break; >> >> - /* >> - * TODO: the entity of below two cases will be implemented in future >series. >> - * To make guest (which integrates scalable mode support patch set in >> - * iommu driver) work, just return true is enough so far. >> - */ >> - case VTD_INV_DESC_PC: >> - break; >> - >> - case VTD_INV_DESC_PIOTLB: >> - break; >> - >> case VTD_INV_DESC_WAIT: >> trace_vtd_inv_desc("wait", inv_desc.hi, inv_desc.lo); >> if (!vtd_process_wait_desc(s, &inv_desc)) { >> @@ -2795,6 +2784,17 @@ static bool >vtd_process_inv_desc(IntelIOMMUState *s) >> } >> break; >> >> + /* >> + * TODO: the entity of below two cases will be implemented in future >series. >> + * To make guest (which integrates scalable mode support patch set in >> + * iommu driver) work, just return true is enough so far. >> + */ >> + case VTD_INV_DESC_PC: >> + case VTD_INV_DESC_PIOTLB: >> + if (s->scalable_mode) { >> + break; >> + } >> + /* fallthrough */ >> default: >> error_report_once("%s: invalid inv desc: hi=%"PRIx64", lo=%"PRIx64 >> " (unknown type)", __func__, inv_desc.hi, > >-- >Regards, >Yi Liu
On Wed, Aug 14, 2024 at 03:05:33AM +0000, Duan, Zhenzhong wrote: > > > >-----Original Message----- > >From: Liu, Yi L <yi.l.liu@intel.com> > >Subject: Re: [PATCH v3 2/2] intel_iommu: Make PASID-cache and PIOTLB > >type invalid in legacy mode > > > >On 2024/8/14 10:26, Zhenzhong Duan wrote: > >> In vtd_process_inv_desc(), VTD_INV_DESC_PC and VTD_INV_DESC_PIOTLB > >are > >> bypassed without scalable mode check. These two types are not valid > >> in legacy mode and we should report error. > >> > >> Fixes: 4a4f219e8a1 ("intel_iommu: add scalable-mode option to make > >scalable mode work") > > > >4a4f219e8a10 would be better. :) > > Ah, OK, Michael, let me know if you want me send a new version. > > Thanks > Zhenzhong Yes pls, also pls Cc me on the cover letter. > > > >> Suggested-by: Yi Liu <yi.l.liu@intel.com> > >> Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com> > >> Reviewed-by: Clément Mathieu--Drif<clement.mathieu--drif@eviden.com> > >> Reviewed-by: Yi Liu <yi.l.liu@intel.com> > >> --- > >> hw/i386/intel_iommu.c | 22 +++++++++++----------- > >> 1 file changed, 11 insertions(+), 11 deletions(-) > >> > >> diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c > >> index 68cb72a481..90cd4e5044 100644 > >> --- a/hw/i386/intel_iommu.c > >> +++ b/hw/i386/intel_iommu.c > >> @@ -2763,17 +2763,6 @@ static bool > >vtd_process_inv_desc(IntelIOMMUState *s) > >> } > >> break; > >> > >> - /* > >> - * TODO: the entity of below two cases will be implemented in future > >series. > >> - * To make guest (which integrates scalable mode support patch set in > >> - * iommu driver) work, just return true is enough so far. > >> - */ > >> - case VTD_INV_DESC_PC: > >> - break; > >> - > >> - case VTD_INV_DESC_PIOTLB: > >> - break; > >> - > >> case VTD_INV_DESC_WAIT: > >> trace_vtd_inv_desc("wait", inv_desc.hi, inv_desc.lo); > >> if (!vtd_process_wait_desc(s, &inv_desc)) { > >> @@ -2795,6 +2784,17 @@ static bool > >vtd_process_inv_desc(IntelIOMMUState *s) > >> } > >> break; > >> > >> + /* > >> + * TODO: the entity of below two cases will be implemented in future > >series. > >> + * To make guest (which integrates scalable mode support patch set in > >> + * iommu driver) work, just return true is enough so far. > >> + */ > >> + case VTD_INV_DESC_PC: > >> + case VTD_INV_DESC_PIOTLB: > >> + if (s->scalable_mode) { > >> + break; > >> + } > >> + /* fallthrough */ > >> default: > >> error_report_once("%s: invalid inv desc: hi=%"PRIx64", lo=%"PRIx64 > >> " (unknown type)", __func__, inv_desc.hi, > > > >-- > >Regards, > >Yi Liu
© 2016 - 2024 Red Hat, Inc.