Excerpts from Vineet Gupta's message of July 28, 2020 2:01 pm: > On 7/27/20 8:33 PM, Nicholas Piggin wrote: >> Many of these are no-ops on many architectures, so extend mmu_context.h >> to cover MMU and NOMMU, and split the NOMMU bits out to nommu_context.h >> > >> -static inline void switch_mm(struct mm_struct *prev, >> - struct mm_struct *next, >> - struct task_struct *tsk) >> +/** >> + * activate_mm - called after exec switches the current task to a new mm, to switch to it >> + * @prev_mm: previous mm of this task >> + * @next_mm: new mm >> + */ >> +#ifndef activate_mm >> +static inline void activate_mm(struct mm_struct *prev_mm, >> + struct mm_struct *next_mm) >> { >> + switch_mm(prev_mm, next_mm, current); >> } >> +#endif > > Is activate_mm() really needed now. It seems most arches have > activate_mm(p, n) -> switch_mm(p, n, NULL) > > And if we are passing current, that can be pushed inside switch_mm() Thanks for taking a look, I think there may be more consolidation like this possible, and certainly some of the arch patches could have gone a bit further. I wanted to be fairly careful to make only quite trivial changes (only the obvious no-ops) for the first iteration, but once this is in the tree it should become a fair bit easier to do some of your suggestions. There's a few things that make activate_mm->switch_mm not quite simple - alpha, nios2, parisc, s390, maybe x86. Thanks, Nick