Skip to content

Commit

Permalink
MIPS: mm: Un-inline get_new_mmu_context
Browse files Browse the repository at this point in the history
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
  • Loading branch information
Paul Burton committed Feb 4, 2019
1 parent 7e8556d commit 4ebea49
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 19 deletions.
20 changes: 1 addition & 19 deletions arch/mips/include/asm/mmu_context.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions arch/mips/mm/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#

obj-y += cache.o
obj-y += context.o
obj-y += extable.o
obj-y += fault.o
obj-y += gup.o
Expand Down
19 changes: 19 additions & 0 deletions arch/mips/mm/context.c
Original file line number Diff line number Diff line change
@@ -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;
}

0 comments on commit 4ebea49

Please sign in to comment.