From: Liu, Yi L yi.l.liu@intel.com Sent: Wednesday, June 7, 2023 4:34 PM
From: Baolu Lu baolu.lu@linux.intel.com Sent: Friday, May 26, 2023 12:16 PM
- /* First level PGD (in GPA) must be supported by the second level. */
- if ((uintptr_t)s1_gpgd > (1ULL << s2_domain->gaw)) {
dev_err_ratelimited(dev,
"Guest PGD %lx not supported,
max %llx\n",
(uintptr_t)s1_gpgd, s2_domain-
max_addr);
return -EINVAL;
- }
I'm not sure how useful this check is. Even if the pgd is sane the lower level PTEs could include unsupported GPA's. If a guest really doesn't want to follow the GPA restriction which vIOMMU reports, it can easily cause IOMMU fault in many ways.
You are right.
Then why treating pgd specially?
I have no memory about this check for now. Yi, any thought?
I don’t think there is another special reason. Just want to ensure the page table base address follows the GPA restriction. But as Kevin mentioned, hw can detect it anyway. So, I think this check can be dropped.
Then we also need to remove below words in the uapi header.
+ Hence the + * stage-1 page table base address value should not be higher than the + * maximum untranslated address of stage-2 page table.
Regards, Yi Liu