Skip to content

Commit

Permalink
x86/xen: set regions above the end of RAM as 1:1
Browse files Browse the repository at this point in the history
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@citrix.com>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Tested-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
  • Loading branch information
David Vrabel committed May 15, 2014
1 parent 2dcc9a3 commit 25b884a
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 1 deletion.
2 changes: 1 addition & 1 deletion arch/x86/xen/p2m.c
Original file line number Diff line number Diff line change
Expand Up @@ -507,7 +507,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);
Expand Down
9 changes: 9 additions & 0 deletions arch/x86/xen/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -468,6 +468,15 @@ char * __init xen_memory_setup(void)
i++;
}

/*
* 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(map[i-1].addr / PAGE_SIZE, ~0ul);

/*
* In domU, the ISA region is normal, usable memory, but we
* reserve ISA memory anyway because too many things poke
Expand Down

0 comments on commit 25b884a

Please sign in to comment.