Re: [PATCH 6/8] RISC-V: Use mmgrab()
From: Christoph Hellwig
Date: Thu Aug 30 2018 - 10:42:02 EST
> +#include <linux/sched/mm.h>
> #include <asm/irq.h>
> #include <asm/mmu_context.h>
> #include <asm/tlbflush.h>
> @@ -79,8 +80,8 @@ int __cpu_up(unsigned int cpu, struct task_struct *tidle)
> * the spinning harts that they can continue the boot process.
> */
> smp_mb();
> - __cpu_up_stack_pointer[cpu] = task_stack_page(tidle) + THREAD_SIZE;
> - __cpu_up_task_pointer[cpu] = tidle;
> + WRITE_ONCE(__cpu_up_stack_pointer[cpu], task_stack_page(tidle) + THREAD_SIZE);
> + WRITE_ONCE(__cpu_up_task_pointer[cpu], tidle);
This looks unrelated.
> @@ -100,7 +101,7 @@ asmlinkage void __init smp_callin(void)
> struct mm_struct *mm = &init_mm;
>
> /* All kernel threads share the same mm context. */
> - atomic_inc(&mm->mm_count);
> + mmgrab(mm);
> current->active_mm = mm;
This part looks fine to me:
Reviewed-by: Christoph Hellwig <hch@xxxxxx>