Messages in this thread | | | Date | Thu, 3 Aug 2023 11:27:01 +0800 | Subject | Re: [PATCH v4 12/12] iommu/vt-d: Disallow nesting on domains with read-only mappings | From | Baolu Lu <> |
| |
On 2023/8/2 15:59, Tian, Kevin wrote: >> From: Liu, Yi L <yi.l.liu@intel.com> >> Sent: Monday, July 24, 2023 7:14 PM >> >> @@ -2147,6 +2148,18 @@ __domain_mapping(struct dmar_domain >> *domain, unsigned long iov_pfn, >> if ((prot & (DMA_PTE_READ|DMA_PTE_WRITE)) == 0) >> return -EINVAL; >> >> + if (!(prot & DMA_PTE_WRITE) && !domain->read_only_mapped) { >> + spin_lock_irqsave(&domain->lock, flags); >> + if (domain->set_nested) { >> + pr_err_ratelimited("No read-only mapping >> permitted\n"); > > "Read-only mapping is disallowed on the domain which serves as the > parent in a nested configuration, due to HW errata (ERRATA_772415_SPR17)"
Ack.
> >> + u8 read_only_mapped:1; /* domain has mappings with >> read-only >> + * permission. >> + */ >> + u8 set_nested:1; /* has other domains nested on it */ > > what about "is_parent"?
"is_parent" is still a bit generic. How about "is_nested_parent"?
> >> >> + spin_lock_irqsave(&s2_dmar_domain->lock, flags); >> + if (s2_dmar_domain->read_only_mapped) { >> + spin_unlock_irqrestore(&s2_dmar_domain->lock, flags); >> + pr_err_ratelimited("S2 domain has read-only mappings\n"); > > "Nested configuration is disallowed when the stage-2 domain already > has read-only mappings, due to HW errata (ERRATA_772415_SPR17)"
Ack.
Best regards, baolu
| |