diff options
author | Ian Campbell <ian.campbell@citrix.com> | 2013-09-26 12:35:38 +0100 |
---|---|---|
committer | Ian Campbell <ian.campbell@citrix.com> | 2013-09-26 16:21:36 +0100 |
commit | ac5a04eda393de164a03148bfa0ed75b0f68e97d (patch) | |
tree | fb22e486ce228a4417ea0ed5f5ac412a7e937c27 /xen | |
parent | db92b1ac55cd5e193ae22b0b6f01fb47bc9e5d2f (diff) | |
download | xen-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.c | 6 |
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 ) |