Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit 4ebea49c authored by Paul Burton's avatar Paul Burton
Browse files

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: default avatarPaul Burton <paul.burton@mips.com>
Cc: linux-mips@vger.kernel.org
parent 7e8556d0
Loading
Loading
Loading
Loading
+1 −19
Original line number Diff line number Diff line
@@ -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
+1 −0
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@
#

obj-y				+= cache.o
obj-y				+= context.o
obj-y				+= extable.o
obj-y				+= fault.o
obj-y				+= gup.o

arch/mips/mm/context.c

0 → 100644
+19 −0
Original line number Diff line number Diff line
// 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;
}