Message ID | 20221028061436.30093-2-jasowang@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | PASID support for Intel IOMMU | expand |
On 2022/10/28 14:14, Jason Wang wrote: > We use to warn on wrong rid2pasid entry. But this error could be > triggered by the guest and could happens during initialization. So > let's don't warn in this case. > > Reviewed-by: Peter Xu <peterx@redhat.com> > Signed-off-by: Jason Wang <jasowang@redhat.com> > --- > Changes since v4: > - Tweak the code to avoid using ret variable > --- > hw/i386/intel_iommu.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) Reviewed-by: Yi Liu <yi.l.liu@intel.com> > diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c > index 6524c2ee32..271de995be 100644 > --- a/hw/i386/intel_iommu.c > +++ b/hw/i386/intel_iommu.c > @@ -1554,8 +1554,10 @@ static bool vtd_dev_pt_enabled(IntelIOMMUState *s, VTDContextEntry *ce) > if (s->root_scalable) { > ret = vtd_ce_get_rid2pasid_entry(s, ce, &pe); > if (ret) { > - error_report_once("%s: vtd_ce_get_rid2pasid_entry error: %"PRId32, > - __func__, ret); > + /* > + * This error is guest triggerable. We should assumt PT > + * not enabled for safety. > + */ > return false; > } > return (VTD_PE_GET_TYPE(&pe) == VTD_SM_PASID_ENTRY_PT); > @@ -1569,14 +1571,12 @@ static bool vtd_as_pt_enabled(VTDAddressSpace *as) > { > IntelIOMMUState *s; > VTDContextEntry ce; > - int ret; > > assert(as); > > s = as->iommu_state; > - ret = vtd_dev_to_context_entry(s, pci_bus_num(as->bus), > - as->devfn, &ce); > - if (ret) { > + if (vtd_dev_to_context_entry(s, pci_bus_num(as->bus), as->devfn, > + &ce)) { > /* > * Possibly failed to parse the context entry for some reason > * (e.g., during init, or any guest configuration errors on
diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 6524c2ee32..271de995be 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -1554,8 +1554,10 @@ static bool vtd_dev_pt_enabled(IntelIOMMUState *s, VTDContextEntry *ce) if (s->root_scalable) { ret = vtd_ce_get_rid2pasid_entry(s, ce, &pe); if (ret) { - error_report_once("%s: vtd_ce_get_rid2pasid_entry error: %"PRId32, - __func__, ret); + /* + * This error is guest triggerable. We should assumt PT + * not enabled for safety. + */ return false; } return (VTD_PE_GET_TYPE(&pe) == VTD_SM_PASID_ENTRY_PT); @@ -1569,14 +1571,12 @@ static bool vtd_as_pt_enabled(VTDAddressSpace *as) { IntelIOMMUState *s; VTDContextEntry ce; - int ret; assert(as); s = as->iommu_state; - ret = vtd_dev_to_context_entry(s, pci_bus_num(as->bus), - as->devfn, &ce); - if (ret) { + if (vtd_dev_to_context_entry(s, pci_bus_num(as->bus), as->devfn, + &ce)) { /* * Possibly failed to parse the context entry for some reason * (e.g., during init, or any guest configuration errors on