Blackfin arch: add link-time asserts to make sure on-chip regions dont overflow
authorMike Frysinger <vapier.adi@gmail.com>
Sat, 28 Mar 2009 16:47:31 +0000 (00:47 +0800)
committerBryan Wu <cooloney@kernel.org>
Sat, 28 Mar 2009 16:47:31 +0000 (00:47 +0800)
Signed-off-by: Mike Frysinger <vapier.adi@gmail.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
arch/blackfin/kernel/vmlinux.lds.S

index 4b4341da0585b3a1aab3ce5c4824e066fca7bea3..27952ae047d883ab80b564eebdbba1e4836e2439 100644 (file)
@@ -183,6 +183,7 @@ SECTIONS
                . = ALIGN(4);
                __etext_l1 = .;
        }
+       ASSERT (SIZEOF(.text_l1) <= L1_CODE_LENGTH, "L1 text overflow!")
 
        .data_l1 L1_DATA_A_START : AT(LOADADDR(.text_l1) + SIZEOF(.text_l1))
        {
@@ -200,6 +201,7 @@ SECTIONS
                . = ALIGN(4);
                __ebss_l1 = .;
        }
+       ASSERT (SIZEOF(.data_a_l1) <= L1_DATA_A_LENGTH, "L1 data A overflow!")
 
        .data_b_l1 L1_DATA_B_START : AT(LOADADDR(.data_l1) + SIZEOF(.data_l1))
        {
@@ -214,6 +216,7 @@ SECTIONS
                . = ALIGN(4);
                __ebss_b_l1 = .;
        }
+       ASSERT (SIZEOF(.data_b_l1) <= L1_DATA_B_LENGTH, "L1 data B overflow!")
 
        __l2_lma_start = LOADADDR(.data_b_l1) + SIZEOF(.data_b_l1);
 
@@ -239,6 +242,7 @@ SECTIONS
                . = ALIGN(4);
                __ebss_l2 = .;
        }
+       ASSERT (SIZEOF(.text_data_l1) <= L2_LENGTH, "L2 overflow!")
 
        /* Force trailing alignment of our init section so that when we
         * free our init memory, we don't leave behind a partial page.