From: Mike Kravetz <[email protected]> Date: Fri, 16 Dec 2016 10:35:26 -0800
> +void smp_flush_shared_tlb_mm(struct mm_struct *mm)
> +{
> + u32 ctx = SHARED_CTX_HWBITS(mm->context);
> +
> + (void)get_cpu(); /* prevent preemption */
preempt_disable();
> +
> + smp_cross_call(&xcall_flush_tlb_mm, ctx, 0, 0);
> + __flush_tlb_mm(ctx, SECONDARY_CONTEXT);
> +
> + put_cpu();
preempt_enable();

