xen/arm: do not relocate Xen outside of visible RAM

Since we do not handle non-contiguous banks of memory lets avoid relocating
Xen into such a bank. Avoids issues such as free_init_memory releasing pages
which are outside of the frametable.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Tim Deegan <tim@xen.org>
This commit is contained in:
Ian Campbell committed 2013-09-26 16:21:33 +01:00
1 parent c883eed77a
commit db92b1ac55
1 file changed
+9 -1
+9 -1
View File
@@ -240,17 +240,25 @@ static paddr_t __init get_xen_paddr(void)
{
struct dt_mem_info *mi = &early_info.mem;
paddr_t min_size;
paddr_t paddr = 0;
paddr_t paddr = 0, last_end;
int i;
min_size = (_end - _start + (XEN_PADDR_ALIGN-1)) & ~(XEN_PADDR_ALIGN-1);
last_end = mi->bank[0].start;
/* Find the highest bank with enough space. */
for ( i = 0; i < mi->nr_banks; i++ )
{
const struct membank *bank = &mi->bank[i];
paddr_t s, e;
/* We can only deal with contiguous memory at the moment */
if ( last_end != bank->start )
break;
last_end = bank->start + bank->size;
if ( bank->size >= min_size )
{
e = consider_modules(bank->start, bank->start + bank->size,
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.