On 2017-07-26, at 2:02 PM, Helge Deller wrote: > Instead I'd then suggest the patch below. > The if-clause in switch_mm_irqs_off() will then probably be optimized > away by the compiler. > > diff --git a/arch/parisc/include/asm/mmu_context.h b/arch/parisc/include/asm/mmu_context.h > index a812262..e4a6570 100644 > --- a/arch/parisc/include/asm/mmu_context.h > +++ b/arch/parisc/include/asm/mmu_context.h > @@ -63,6 +63,9 @@ static inline void switch_mm(struct mm_struct *prev, > { > unsigned long flags; > > + if (prev == next) > + return; > + > local_irq_save(flags); > switch_mm_irqs_off(prev, next, tsk); > local_irq_restore(flags); You are correct. I missed the fact that switch_mm_irqs_off() is used by kernel/sched/core.c. Maybe we should replace the "switch_mm_irqs_off(prev, next, tsk);" with the mtctl and load_context lines to ensure that the if-clause is optimized? Dave -- John David Anglin dave.anglin@xxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-parisc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html