lkml.org 
[lkml]   [2013]   [Aug]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[ 001/102] ARM: poison the vectors page
    Date
    3.10-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Russell King <rmk+kernel@arm.linux.org.uk>

    commit f928d4f2a86f46b030fa0850385b4391fc2b5918 upstream.

    Fill the empty regions of the vectors page with an exception generating
    instruction. This ensures that any inappropriate branch to the vector
    page is appropriately trapped, rather than just encountering some code
    to execute. (The vectors page was filled with zero before, which
    corresponds with the "andeq r0, r0, r0" instruction - a no-op.)

    Acked-by Nicolas Pitre <nico@linaro.org>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    arch/arm/kernel/traps.c | 10 ++++++++++
    1 file changed, 10 insertions(+)

    --- a/arch/arm/kernel/traps.c
    +++ b/arch/arm/kernel/traps.c
    @@ -817,10 +817,20 @@ void __init early_trap_init(void *vector
    extern char __vectors_start[], __vectors_end[];
    extern char __kuser_helper_start[], __kuser_helper_end[];
    int kuser_sz = __kuser_helper_end - __kuser_helper_start;
    + unsigned i;

    vectors_page = vectors_base;

    /*
    + * Poison the vectors page with an undefined instruction. This
    + * instruction is chosen to be undefined for both ARM and Thumb
    + * ISAs. The Thumb version is an undefined instruction with a
    + * branch back to the undefined instruction.
    + */
    + for (i = 0; i < PAGE_SIZE / sizeof(u32); i++)
    + ((u32 *)vectors_base)[i] = 0xe7fddef1;
    +
    + /*
    * Copy the vectors, stubs and kuser helpers (in entry-armv.S)
    * into the vector page, mapped at 0xffff0000, and ensure these
    * are visible to the instruction stream.



    \
     
     \ /
      Last update: 2013-08-09 05:01    [W:4.095 / U:0.068 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site