Skip to contentSkip to conversation

Patch "sparc64: combine activate_mm and switch_mm" has been added to the 4.11-stable tree

PATCH [email protected] 1 participant 1 message Jun 8, 2017

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

sparc64: combine activate_mm and switch_mm

to the 4.11-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
sparc64-combine-activate_mm-and-switch_mm.patch
and it can be found in the queue-4.11 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From foo@baz Thu Jun 8 08:58:43 CEST 2017

From: Pavel Tatashin <[email protected]>
Date: Wed, 31 May 2017 11:25:21 -0400
Subject: sparc64: combine activate_mm and switch_mm

From: Pavel Tatashin <[email protected]>

[ Upstream commit 14d0334c6748ff2aedb3f2f7fdc51ee90a9b54e7 ]

The only difference between these two functions is that in activate_mm we unconditionally flush context. However, there is no need to keep this difference after fixing a bug where cpumask was not reset on a wrap. So, in this patch we combine these.

---
 arch/sparc/include/asm/mmu_context_64.h |   21 +--------------------
 1 file changed, 1 insertion(+), 20 deletions(-)
arch/sparc/include/asm/mmu_context_64.h +1 -20
@@ -133,26 +133,7 @@ static inline void switch_mm(struct mm_s
 }
 
 #define deactivate_mm(tsk,mm)	do { } while (0)
-
-/* Activate a new MM instance for the current task. */
-static inline void activate_mm(struct mm_struct *active_mm, struct mm_struct *mm)
-{
-	unsigned long flags;
-	int cpu;
-
-	spin_lock_irqsave(&mm->context.lock, flags);
-	if (!CTX_VALID(mm->context))
-		get_new_mmu_context(mm);
-	cpu = smp_processor_id();
-	if (!cpumask_test_cpu(cpu, mm_cpumask(mm)))
-		cpumask_set_cpu(cpu, mm_cpumask(mm));
-
-	load_secondary_context(mm);
-	__flush_tlb_mm(CTX_HWBITS(mm->context), SECONDARY_CONTEXT);
-	tsb_context_switch(mm);
-	spin_unlock_irqrestore(&mm->context.lock, flags);
-}
-
+#define activate_mm(active_mm, mm) switch_mm(active_mm, mm, NULL)
 #endif /* !(__ASSEMBLY__) */
 
 #endif /* !(__SPARC64_MMU_CONTEXT_H) */

Patches currently in stable-queue which might be from [email protected] are

queue-4.11/sparc64-new-context-wrap.patch queue-4.11/sparc64-combine-activate_mm-and-switch_mm.patch queue-4.11/sparc64-add-per-cpu-mm-of-secondary-contexts.patch queue-4.11/sparc64-reset-mm-cpumask-after-wrap.patch queue-4.11/sparc64-redefine-first-version.patch queue-4.11/sparc64-delete-old-wrap-code.patch