Messages in this thread | | | From | Greentime Hu <> | Date | Thu, 30 Apr 2020 22:45:47 +0800 | Subject | Re: [PATCH] riscv: force __cpu_up_ variables to put in data section |
| |
Zong Li <zong.li@sifive.com> 於 2020年4月30日 週四 下午5:53寫道: > > Put __cpu_up_stack_pointer and __cpu_up_task_pointer in data section. > Currently, these two variables are put in bss section, there is a > potential risk that secondary harts get the uninitialized value before > main hart finishing the bss clearing. In this case, all secondary > harts would go through the waiting loop and enable the MMU before > main hart set up the page table. > > Signed-off-by: Zong Li <zong.li@sifive.com> > --- > arch/riscv/kernel/cpu_ops.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/riscv/kernel/cpu_ops.c b/arch/riscv/kernel/cpu_ops.c > index c4c33bf02369..0ec22354018c 100644 > --- a/arch/riscv/kernel/cpu_ops.c > +++ b/arch/riscv/kernel/cpu_ops.c > @@ -15,8 +15,8 @@ > > const struct cpu_operations *cpu_ops[NR_CPUS] __ro_after_init; > > -void *__cpu_up_stack_pointer[NR_CPUS]; > -void *__cpu_up_task_pointer[NR_CPUS]; > +void *__cpu_up_stack_pointer[NR_CPUS] __section(.data); > +void *__cpu_up_task_pointer[NR_CPUS] __section(.data); > > extern const struct cpu_operations cpu_ops_sbi; > extern const struct cpu_operations cpu_ops_spinwait;
Reviewed-by: Greentime Hu <greentime.hu@sifive.com>
| |