> From: Liu, Yi L <yi.l.liu@xxxxxxxxx> > 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)" > + 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"? > > + 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)"