ARM: kernel: Get rid of thread_info::used_cp[] array
authorArd Biesheuvel <ardb@kernel.org>
Sun, 19 Mar 2023 22:55:14 +0000 (23:55 +0100)
committerArd Biesheuvel <ardb@kernel.org>
Wed, 17 May 2023 13:08:22 +0000 (15:08 +0200)
We keep track of which coprocessor triggered a fault in the used_cp[]
array in thread_info, but this data is never used anywhere. So let's
remove it.

Linus did some digging and found out that the last user of this field
was removed in commit bb1a773d5b6b ("kill unused dump_fpu() instances").

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
arch/arm/include/asm/thread_info.h
arch/arm/kernel/asm-offsets.c
arch/arm/kernel/entry-armv.S
arch/arm/kernel/process.c
arch/arm/kernel/ptrace.c

index 7f092cb55a4171548da8e4df3c72708512df9264..85c5f1e02ebf83ca44ee34ff3f6092b95754a7ba 100644 (file)
@@ -66,7 +66,6 @@ struct thread_info {
        __u32                   cpu_domain;     /* cpu domain */
        struct cpu_context_save cpu_context;    /* cpu context */
        __u32                   abi_syscall;    /* ABI type and syscall nr */
-       __u8                    used_cp[16];    /* thread used copro */
        unsigned long           tp_value[2];    /* TLS registers */
        union fp_state          fpstate __attribute__((aligned(8)));
        union vfp_state         vfpstate;
index 38121c59cbc26cdd51afc30e3593b909e3890c18..f9c7111c1d65ffda6957e3b2623bc4389e0eac85 100644 (file)
@@ -47,7 +47,6 @@ int main(void)
   DEFINE(TI_CPU_DOMAIN,                offsetof(struct thread_info, cpu_domain));
   DEFINE(TI_CPU_SAVE,          offsetof(struct thread_info, cpu_context));
   DEFINE(TI_ABI_SYSCALL,       offsetof(struct thread_info, abi_syscall));
-  DEFINE(TI_USED_CP,           offsetof(struct thread_info, used_cp));
   DEFINE(TI_TP_VALUE,          offsetof(struct thread_info, tp_value));
   DEFINE(TI_FPSTATE,           offsetof(struct thread_info, fpstate));
 #ifdef CONFIG_VFP
index c39303e5c23470e6a37a91185193b8964794a628..ba47f6aac5ff8692f337ba45082985580372c0cc 100644 (file)
@@ -591,9 +591,6 @@ call_fpe:
        and     r8, r0, r5
        cmp     r8, r7                          @ NEON instruction?
        bne     2b
-       mov     r7, #1
-       strb    r7, [r10, #TI_USED_CP + 10]     @ mark CP#10 as used
-       strb    r7, [r10, #TI_USED_CP + 11]     @ mark CP#11 as used
        b       do_vfp                          @ let VFP handler handle this
 1:
 #endif
@@ -601,9 +598,6 @@ call_fpe:
        tstne   r0, #0x04000000                 @ bit 26 set on both ARM and Thumb-2
        reteq   lr
        and     r8, r0, #0x00000f00             @ mask out CP number
-       mov     r7, #1
-       add     r6, r10, r8, lsr #8             @ add used_cp[] array offset first
-       strb    r7, [r6, #TI_USED_CP]           @ set appropriate used_cp[]
 #ifdef CONFIG_IWMMXT
        @ Test if we need to give access to iWMMXt coprocessors
        ldr     r5, [r10, #TI_FLAGS]
index 0e8ff85890adec077412107fb891793701ca5fe9..e16ed102960cb01d625e2ccc484f238b824b03b3 100644 (file)
@@ -222,7 +222,6 @@ void flush_thread(void)
 
        flush_ptrace_hw_breakpoint(tsk);
 
-       memset(thread->used_cp, 0, sizeof(thread->used_cp));
        memset(&tsk->thread.debug, 0, sizeof(struct debug_info));
        memset(&thread->fpstate, 0, sizeof(union fp_state));
 
index 2d8e2516906b6b4a2a1898ccc179d340b697cac5..2b945b9bd36624a9cfc10d21d4159255ecda09af 100644 (file)
@@ -584,8 +584,6 @@ static int fpa_set(struct task_struct *target,
 {
        struct thread_info *thread = task_thread_info(target);
 
-       thread->used_cp[1] = thread->used_cp[2] = 1;
-
        return user_regset_copyin(&pos, &count, &kbuf, &ubuf,
                &thread->fpstate,
                0, sizeof(struct user_fp));