<div dir="ltr">Hi Rock,<br><br>On Mon, Aug 3, 2015 at 7:28 PM, Rock Lee &lt;<a href="mailto:rocklee_104@outlook.com">rocklee_104@outlook.com</a>&gt; wrote:<br>&gt;<br>&gt; Hi, all:<br>&gt;         I print a local variable address in start_kernel(), and I realize this<br>&gt; address is between __data_start and _edata. In my opinion,<br>&gt; local variables should be located in stack, why is this local variable<br>&gt; located in data section? BTW, I use a arm11 board with linux-2.6.28.<br><br><br>If you look at the linker script file for the kernel <a href="http://lxr.free-electrons.com/source/arch/arm/kernel/vmlinux.lds.S#L244">http://lxr.free-electrons.com/source/arch/arm/kernel/vmlinux.lds.S#L244</a> , you&#39;ll see that INIT_TASK_DATA (which includes the kernel stack) is between _data and _edata. This is the stack used for kernel booting and then taken over by the init task.<br><br>--<br>Dave Hylands<br>Shuswap, BC, Canada<br><a href="http://www.davehylands.com">http://www.davehylands.com</a></div>