aboutsummaryrefslogtreecommitdiffstats
path: root/xen
diff options
context:
space:
mode:
authorIan Campbell <ian.campbell@citrix.com>2013-09-26 12:35:38 +0100
committerIan Campbell <ian.campbell@citrix.com>2013-09-26 16:21:36 +0100
commitac5a04eda393de164a03148bfa0ed75b0f68e97d (patch)
treefb22e486ce228a4417ea0ed5f5ac412a7e937c27 /xen
parentdb92b1ac55cd5e193ae22b0b6f01fb47bc9e5d2f (diff)
downloadxen-ac5a04eda393de164a03148bfa0ed75b0f68e97d.tar.gz
xen-ac5a04eda393de164a03148bfa0ed75b0f68e97d.tar.bz2
xen-ac5a04eda393de164a03148bfa0ed75b0f68e97d.zip
xen/arm: cope with modules outside of "visible" RAM
This can happen if modules are in a bank which we can't cope with e.g. due to being non-contiguous. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Reviewed-by: Julien Grall <julien.grall@linaro.org> Acked-by: Tim Deegan <tim@xen.org>
Diffstat (limited to 'xen')
-rw-r--r--xen/arch/arm/setup.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 82158978e2..02200ff883 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -390,6 +390,12 @@ static void __init setup_mm(unsigned long dtb_paddr, size_t dtb_size)
e = n = ram_end;
}
+ /* Module in RAM which we cannot see here, due to not handling
+ * non-contiguous memory regions yet
+ */
+ if ( e > ram_end )
+ e = ram_end;
+
/* Avoid the xenheap */
if ( s < ((xenheap_mfn_start+xenheap_pages) << PAGE_SHIFT)
&& (xenheap_mfn_start << PAGE_SHIFT) < e )