• Maciej W. Rozycki's avatar
    MIPS: ptrace: Prevent writes to read-only FCSR bits · 49dc90fd
    Maciej W. Rozycki authored
    [ Upstream commit abf378be ]
    
    Correct the cases missed with commit 9b26616c ("MIPS: Respect the
    ISA level in FCSR handling") and prevent writes to read-only FCSR bits
    there.
    
    This in particular applies to FP context initialisation where any IEEE
    754-2008 bits preset by `mips_set_personality_nan' are cleared before
    the relevant ptrace(2) call takes effect and the PTRACE_POKEUSR request
    addressing FPC_CSR where no masking of read-only FCSR bits is done.
    
    Remove the FCSR clearing from FP context initialisation then and unify
    PTRACE_POKEUSR/FPC_CSR and PTRACE_SETFPREGS handling, by factoring out
    code from `ptrace_setfpregs' and calling it from both places.
    
    This mostly matters to soft float configurations where the emulator can
    be switched this way to a mode which should not be accessible and cannot
    be set with the CTC1 instruction.  With hard float configurations any
    effect is transient anyway as read-only bits will retain their values at
    the time the FP context is restored.
    Signed-off-by: default avatarMaciej W. Rozycki <macro@imgtec.com>
    Cc: stable@vger.kernel.org # v4.0+
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/13239/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
    Signed-off-by: default avatarSasha Levin <sasha.levin@oracle.com>
    49dc90fd
ptrace.c 19.6 KB