MIPS: mm: Un-inline get_new_mmu_context

In preparation for adding MMID support to get_new_mmu_context() which
will increase the size of the function somewhat, move it from
asm/mmu_context.h into a C file.

Signed-off-by: Paul Burton <paul.burton@mips.com>
Cc: linux-mips@vger.kernel.org
This commit is contained in:
Paul Burton 2019-02-02 01:43:24 +00:00
parent 7e8556d06a
commit 4ebea49ce2
No known key found for this signature in database
GPG Key ID: 3EA79FACB57500DD
3 changed files with 21 additions and 19 deletions

View File

@ -97,25 +97,7 @@ static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
{
}
/* Normal, classic MIPS get_new_mmu_context */
static inline void
get_new_mmu_context(struct mm_struct *mm)
{
unsigned int cpu;
u64 asid;
cpu = smp_processor_id();
asid = asid_cache(cpu);
if (!((asid += cpu_asid_inc()) & cpu_asid_mask(&cpu_data[cpu]))) {
if (cpu_has_vtag_icache)
flush_icache_all();
local_flush_tlb_all(); /* start new asid cycle */
}
cpu_context(cpu, mm) = asid_cache(cpu) = asid;
}
extern void get_new_mmu_context(struct mm_struct *mm);
/*
* Initialize the context related info for a new mm_struct

View File

@ -4,6 +4,7 @@
#
obj-y += cache.o
obj-y += context.o
obj-y += extable.o
obj-y += fault.o
obj-y += gup.o

19
arch/mips/mm/context.c Normal file
View File

@ -0,0 +1,19 @@
// SPDX-License-Identifier: GPL-2.0
#include <linux/mmu_context.h>
void get_new_mmu_context(struct mm_struct *mm)
{
unsigned int cpu;
u64 asid;
cpu = smp_processor_id();
asid = asid_cache(cpu);
if (!((asid += cpu_asid_inc()) & cpu_asid_mask(&cpu_data[cpu]))) {
if (cpu_has_vtag_icache)
flush_icache_all();
local_flush_tlb_all(); /* start new asid cycle */
}
cpu_context(cpu, mm) = asid_cache(cpu) = asid;
}