> 
> +void ptep_invalidate_range(struct mm_struct *mm, unsigned long start,
> +                        unsigned long end, pte_t *ptep)
> +{
> +     unsigned long nr;
> +
> +     if (!MACHINE_HAS_IPTE_RANGE || mm_has_pgste(mm))
> +             return;
> +     preempt_disable();
> +     nr = (end - start) >> PAGE_SHIFT;
> +     /* If the flush is likely to be local skip the ipte range */
> +     if (nr && !cpumask_equal(mm_cpumask(mm),
> +                              cpumask_of(smp_processor_id())))

s/smp/raw_smp/ to avoid adding schedule entry with page table
lock held?

> +             __ptep_ipte_range(start, nr - 1, ptep);
> +     preempt_enable();
> +}
> +EXPORT_SYMBOL(ptep_invalidate_range);
> +

thanks
Hillf

Reply via email to