MIPS: Remove struct mm_context_t fp_mode_switching field
authorPaul Burton <paul.burton@mips.com>
Tue, 18 Dec 2018 06:05:40 +0000 (22:05 -0800)
committerPaul Burton <paul.burton@mips.com>
Tue, 18 Dec 2018 06:05:40 +0000 (22:05 -0800)
The fp_mode_switching field in struct mm_context_t was left unused by
commit 8c8d953c2800 ("MIPS: Schedule on CPUs we need to lose FPU for a
mode switch") in v4.19, with nothing modifying its value & nothing
waiting on it having any particular value after that commit. Remove the
unused field & the one remaining reference to it.

Signed-off-by: Paul Burton <paul.burton@mips.com>
arch/mips/include/asm/mmu.h
arch/mips/kernel/process.c

index 24d6b42..88a108c 100644 (file)
@@ -9,7 +9,6 @@
 typedef struct {
        u64 asid[NR_CPUS];
        void *vdso;
-       atomic_t fp_mode_switching;
 
        /* lock to be held whilst modifying fp_bd_emupage_allocmap */
        spinlock_t bd_emupage_lock;
index d4f7fd4..6829a06 100644 (file)
@@ -737,10 +737,9 @@ static long prepare_for_fp_mode_switch(void *unused)
        /*
         * This is icky, but we use this to simply ensure that all CPUs have
         * context switched, regardless of whether they were previously running
-        * kernel or user code. This ensures that no CPU currently has its FPU
-        * enabled, or is about to attempt to enable it through any path other
-        * than enable_restore_fp_context() which will wait appropriately for
-        * fp_mode_switching to be zero.
+        * kernel or user code. This ensures that no CPU that a mode-switching
+        * program may execute on keeps its FPU enabled (& in the old mode)
+        * throughout the mode switch.
         */
        return 0;
 }
@@ -829,8 +828,6 @@ int mips_set_process_fp_mode(struct task_struct *task, unsigned int value)
                work_on_cpu(cpu, prepare_for_fp_mode_switch, NULL);
        put_online_cpus();
 
-       wake_up_var(&task->mm->context.fp_mode_switching);
-
        return 0;
 }