[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen master] VT-d: fix and extend RMRR reservation check



commit 5657d6765717ee309d758fe573f832c28b67cbc7
Author:     Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Mon Mar 9 10:00:26 2020 +0100
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Mon Mar 9 10:00:26 2020 +0100

    VT-d: fix and extend RMRR reservation check
    
    First of all in commit d6573bc6e6b7 ("VT-d: check all of an RMRR for
    being E820-reserved") along with changing the function used, the enum-
    like value passed should have been changed too (to E820_*). Do so now.
    (Luckily the actual values of RAM_TYPE_RESERVED and E820_RESERVED
    match, so the breakage introduced was "only" latent.)
    
    Furthermore one of my systems surfaces RMRR in an ACPI NVS E820 range.
    The purpose of the check is just to make sure there won't be "ordinary"
    mappings of these ranges, and domains (including Dom0) won't want to
    use the region to e.g. put PCI device BARs there. The two ACPI related
    E820 types are good enough for this purpose, so allow them as well.
    
    Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
    Reviewed-by: Kevin Tian <kevin.tian@xxxxxxxxx>
---
 xen/drivers/passthrough/vtd/dmar.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/xen/drivers/passthrough/vtd/dmar.c 
b/xen/drivers/passthrough/vtd/dmar.c
index 9408e6db37..29cd5c5d70 100644
--- a/xen/drivers/passthrough/vtd/dmar.c
+++ b/xen/drivers/passthrough/vtd/dmar.c
@@ -632,7 +632,9 @@ acpi_parse_one_rmrr(struct acpi_dmar_header *header)
      * not properly represented in the system memory map and
      * inform the user
      */
-    if ( !e820_all_mapped(base_addr, end_addr + 1, RAM_TYPE_RESERVED) )
+    if ( !e820_all_mapped(base_addr, end_addr + 1, E820_RESERVED) &&
+         !e820_all_mapped(base_addr, end_addr + 1, E820_NVS) &&
+         !e820_all_mapped(base_addr, end_addr + 1, E820_ACPI) )
         printk(XENLOG_WARNING VTDPREFIX
                " RMRR [%"PRIx64",%"PRIx64"] not in reserved memory;"
                " need \"iommu_inclusive_mapping=1\"?\n",
--
generated by git-patchbot for /home/xen/git/xen.git#master

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/xen-changelog

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.