diff options
Diffstat (limited to 'arch/x86/xen/setup.c')
-rw-r--r-- | arch/x86/xen/setup.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c index a8a66a50d446..2a4add9634ce 100644 --- a/arch/x86/xen/setup.c +++ b/arch/x86/xen/setup.c | |||
@@ -194,6 +194,14 @@ char * __init xen_memory_setup(void) | |||
194 | end -= delta; | 194 | end -= delta; |
195 | 195 | ||
196 | extra_pages += PFN_DOWN(delta); | 196 | extra_pages += PFN_DOWN(delta); |
197 | /* | ||
198 | * Set RAM below 4GB that is not for us to be unusable. | ||
199 | * This prevents "System RAM" address space from being | ||
200 | * used as potential resource for I/O address (happens | ||
201 | * when 'allocate_resource' is called). | ||
202 | */ | ||
203 | if (delta && end < 0x100000000UL) | ||
204 | e820_add_region(end, delta, E820_UNUSABLE); | ||
197 | } | 205 | } |
198 | 206 | ||
199 | if (map[i].size > 0 && end > xen_extra_mem_start) | 207 | if (map[i].size > 0 && end > xen_extra_mem_start) |