This is a note to let you know that I've just added the patch titled

    ARM: 7628/1: head.S: map one extra section for the ATAG/DTB area

to the 3.4-stable tree which can be found at:
    
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     arm-7628-1-head.s-map-one-extra-section-for-the-atag-dtb-area.patch
and it can be found in the queue-3.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <[email protected]> know about it.


>From 6f16f4998f98e42e3f2dedf663cfb691ff0324af Mon Sep 17 00:00:00 2001
From: Nicolas Pitre <[email protected]>
Date: Tue, 15 Jan 2013 18:51:32 +0100
Subject: ARM: 7628/1: head.S: map one extra section for the ATAG/DTB area

From: Nicolas Pitre <[email protected]>

commit 6f16f4998f98e42e3f2dedf663cfb691ff0324af upstream.

We currently use a temporary 1MB section aligned to a 1MB boundary for
mapping the provided device tree until the final page table is created.
However, if the device tree happens to cross that 1MB boundary, the end
of it remains unmapped and the kernel crashes when it attempts to access
it.  Given no restriction on the location of that DTB, it could end up
with only a few bytes mapped at the end of a section.

Solve this issue by mapping two consecutive sections.

Signed-off-by: Nicolas Pitre <[email protected]>
Tested-by: Sascha Hauer <[email protected]>
Tested-by: Tomasz Figa <[email protected]>
Signed-off-by: Russell King <[email protected]>
[bwh: Backported to 3.2:
 - Adjust context
 - The mapping is not conditional; drop the 'ne' suffixes]
Signed-off-by: Ben Hutchings <[email protected]>
[yangyl: Backported to 3.4: Adjust context]
Signed-off-by: Yang Yingliang <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
 arch/arm/kernel/head.S |    3 +++
 1 file changed, 3 insertions(+)

--- a/arch/arm/kernel/head.S
+++ b/arch/arm/kernel/head.S
@@ -254,6 +254,7 @@ __create_page_tables:
        /*
         * Then map boot params address in r2 or the first 1MB (2MB with LPAE)
         * of ram if boot params address is not specified.
+        * We map 2 sections in case the ATAGs/DTB crosses a section boundary.
         */
        mov     r0, r2, lsr #SECTION_SHIFT
        movs    r0, r0, lsl #SECTION_SHIFT
@@ -262,6 +263,8 @@ __create_page_tables:
        add     r3, r3, #PAGE_OFFSET
        add     r3, r4, r3, lsr #(SECTION_SHIFT - PMD_ORDER)
        orr     r6, r7, r0
+       str     r6, [r3], #1 << PMD_ORDER
+       add     r6, r6, #1 << SECTION_SHIFT
        str     r6, [r3]
 
 #ifdef CONFIG_DEBUG_LL


Patches currently in stable-queue which might be from [email protected] 
are

queue-3.4/arm-7628-1-head.s-map-one-extra-section-for-the-atag-dtb-area.patch
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to