lkml.org 
[lkml]   [2015]   [May]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RESEND Patch V3 09/15] xen: check for kernel memory conflicting with memory layout
    Date
    Checks whether the pre-allocated memory of the loaded kernel is in
    conflict with the target memory map. If this is the case, just panic
    instead of run into problems later, as there is nothing we can do
    to repair this situation.

    Signed-off-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: David Vrabel <david.vrabel@citrix.com>
    ---
    arch/x86/xen/setup.c | 12 ++++++++++++
    1 file changed, 12 insertions(+)

    diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
    index 973d294..9bd3f35 100644
    --- a/arch/x86/xen/setup.c
    +++ b/arch/x86/xen/setup.c
    @@ -27,6 +27,7 @@
    #include <xen/interface/memory.h>
    #include <xen/interface/physdev.h>
    #include <xen/features.h>
    +#include <xen/hvc-console.h>
    #include "xen-ops.h"
    #include "vdso.h"
    #include "p2m.h"
    @@ -790,6 +791,17 @@ char * __init xen_memory_setup(void)

    sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);

    + /*
    + * Check whether the kernel itself conflicts with the target E820 map.
    + * Failing now is better than running into weird problems later due
    + * to relocating (and even reusing) pages with kernel text or data.
    + */
    + if (xen_is_e820_reserved(__pa_symbol(_text),
    + __pa_symbol(__bss_stop) - __pa_symbol(_text))) {
    + xen_raw_console_write("Xen hypervisor allocated kernel memory conflicts with E820 map\n");
    + BUG();
    + }
    +
    xen_reserve_xen_mfnlist();

    /*
    --
    2.1.4


    \
     
     \ /
      Last update: 2015-05-04 10:41    [W:2.403 / U:0.240 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site