Re: [PATCH 01/24] asm-generic: add generic versions of mmu context functions

From: Nicholas Piggin
Date: Tue Jul 28 2020 - 06:37:42 EST


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