Patch "sparc64: delete old wrap code" has been added to the 4.9-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
sparc64: delete old wrap code
to the 4.9-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-delete-old-wrap-code.patch
and it can be found in the queue-4.9 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:54 CEST 2017
From: Pavel Tatashin <[email protected]>
Date: Wed, 31 May 2017 11:25:25 -0400
Subject: sparc64: delete old wrap code
From: Pavel Tatashin <[email protected]>
[ Upstream commit 0197e41ce70511dc3b71f7fefa1a676e2b5cd60b ]
The old method that is using xcall and softint to get new context id is deleted, as it is replaced by a method of using per_cpu_secondary_mm without xcall to perform the context wrap.
--- arch/sparc/include/asm/mmu_context_64.h | 6 ------ arch/sparc/include/asm/pil.h | 1 - arch/sparc/kernel/kernel.h | 1 - arch/sparc/kernel/smp_64.c | 31 ------------------------------- arch/sparc/kernel/ttable_64.S | 2 +- arch/sparc/mm/ultra.S | 5 ----- 6 files changed, 1 insertion(+), 45 deletions(-)
arch/sparc/include/asm/mmu_context_64.h +0 -6
@@ -19,12 +19,6 @@ extern unsigned long mmu_context_bmap[]; DECLARE_PER_CPU(struct mm_struct *, per_cpu_secondary_mm);void get_new_mmu_context (struct mm_struct *mm); -#ifdef CONFIG_SMP -void smp_new_mmu_context_version (void ); -#else -#define smp_new_mmu_context_version () do { } while (0) -#endif -int init_new_context (struct task_struct *tsk,struct mm_struct *mm);void destroy_context (struct mm_struct *mm);
arch/sparc/include/asm/pil.h +0 -1
@@ -20,7 +20,6 @@#define PIL_SMP_CALL_FUNC 1#define PIL_SMP_RECEIVE_SIGNAL 2#define PIL_SMP_CAPTURE 3 -#define PIL_SMP_CTX_NEW_VERSION 4#define PIL_DEVICE_IRQ 5#define PIL_SMP_CALL_FUNC_SNGL 6#define PIL_DEFERRED_PCR_WORK 7
arch/sparc/kernel/kernel.h +0 -1
@@ -37,7 +37,6 @@ void handle_stdfmna(struct pt_regs *regs/* smp_64.c */ void __irq_entry smp_call_function_client(int irq, struct pt_regs *regs); void __irq_entry smp_call_function_single_client(int irq, struct pt_regs *regs); -void __irq_entry smp_new_mmu_context_version_client(int irq, struct pt_regs *regs); void __irq_entry smp_penguin_jailcell(int irq, struct pt_regs *regs); void __irq_entry smp_receive_signal_client(int irq, struct pt_regs *regs);
arch/sparc/kernel/smp_64.c +0 -31
@@ -963,37 +963,6 @@ void flush_dcache_page_all(struct mm_strpreempt_enable (); } -void __irq_entry smp_new_mmu_context_version_client(int irq, struct pt_regs *regs) -{ -struct mm_struct *mm; -unsigned long flags; - -clear_softint (1 << irq); - -/* See if we need to allocate a new TLB context because -* the version of the one we are using is now out of date. -*/ - mm = current->active_mm; -if (unlikely (!mm || (mm == &init_mm))) -return ; - -spin_lock_irqsave (&mm->context.lock, flags); - -if (unlikely (!CTX_VALID (mm->context))) -get_new_mmu_context (mm); - -spin_unlock_irqrestore (&mm->context.lock, flags); - -load_secondary_context (mm); -__flush_tlb_mm (CTX_HWBITS (mm->context), -SECONDARY_CONTEXT ); -} - -void smp_new_mmu_context_version (void ) -{ -smp_cross_call (&xcall_new_mmu_context_version,0 ,0 ,0 ); -} -#ifdef CONFIG_KGDB void kgdb_roundup_cpus (unsigned long flags) {
arch/sparc/kernel/ttable_64.S +1 -1
@@ -50,7 +50,7 @@ tl0_resv03e: BTRAP(0x3e) BTRAP(0x3f) BTR tl0_irq1: TRAP_IRQ(smp_call_function_client, 1) tl0_irq2: TRAP_IRQ(smp_receive_signal_client, 2) tl0_irq3: TRAP_IRQ(smp_penguin_jailcell, 3) -tl0_irq4: TRAP_IRQ(smp_new_mmu_context_version_client, 4) +tl0_irq4: BTRAP(0x44) #else tl0_irq1: BTRAP(0x41) tl0_irq2: BTRAP(0x42)
arch/sparc/mm/ultra.S +0 -5
@@ -971,11 +971,6 @@ xcall_capture: wr %g0, (1 << PIL_SMP_CAPTURE), %set_softint retry - .globl xcall_new_mmu_context_version -xcall_new_mmu_context_version: - wr %g0, (1 << PIL_SMP_CTX_NEW_VERSION), %set_softint - retry - #ifdef CONFIG_KGDB .globl xcall_kgdb_capture xcall_kgdb_capture:
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/sparc64-new-context-wrap.patch queue-4.9/sparc64-combine-activate_mm-and-switch_mm.patch queue-4.9/sparc64-add-per-cpu-mm-of-secondary-contexts.patch queue-4.9/sparc64-reset-mm-cpumask-after-wrap.patch queue-4.9/sparc64-redefine-first-version.patch queue-4.9/sparc64-delete-old-wrap-code.patch