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

[Xen-devel] [PATCH 1/2] x86/xen: set regions above the end of RAM as 1:1



From: David Vrabel <david.vrabel@xxxxxxxxxx>

PCI devices may have BARs located above the end of RAM so mark such
frames as identity frames in the p2m (instead of the default of
missing).

PFNs outside the p2m (above MAX_P2M_PFN) are also considered to be
identity frames for the same reason.

Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
---
 arch/x86/xen/p2m.c   |    2 +-
 arch/x86/xen/setup.c |   10 ++++++++++
 2 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
index 2ae8699..a905355 100644
--- a/arch/x86/xen/p2m.c
+++ b/arch/x86/xen/p2m.c
@@ -481,7 +481,7 @@ unsigned long get_phys_to_machine(unsigned long pfn)
        unsigned topidx, mididx, idx;
 
        if (unlikely(pfn >= MAX_P2M_PFN))
-               return INVALID_P2M_ENTRY;
+               return IDENTITY_FRAME(pfn);
 
        topidx = p2m_top_index(pfn);
        mididx = p2m_mid_index(pfn);
diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
index 68c054f..6d7798f 100644
--- a/arch/x86/xen/setup.c
+++ b/arch/x86/xen/setup.c
@@ -412,6 +412,16 @@ char * __init xen_memory_setup(void)
                max_pfn = min(MAX_DOMAIN_PAGES, last_pfn);
                mem_end = PFN_PHYS(max_pfn);
        }
+
+       /*
+        * Set the rest as identity mapped, in case PCI BARs are
+        * located here.
+        *
+        * PFNs above MAX_P2M_PFN are considered identity mapped as
+        * well.
+        */
+       set_phys_range_identity(max_pfn + 1, ~0ul);
+
        /*
         * Clamp the amount of extra memory to a EXTRA_MEM_RATIO
         * factor the base size.  On non-highmem systems, the base
-- 
1.7.2.5


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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