• James Hogan's avatar
    MIPS: lose_fpu(): Disable FPU when MSA enabled · 00f1187a
    James Hogan authored
    [ Upstream commit f8483988 ]
    
    The lose_fpu() function only disables the FPU in CP0_Status.CU1 if the
    FPU is in use and MSA isn't enabled.
    
    This isn't necessarily a problem because KSTK_STATUS(current), the
    version of CP0_Status stored on the kernel stack on entry from user
    mode, does always get updated and gets restored when returning to user
    mode, but I don't think it was intended, and it is inconsistent with the
    case of only the FPU being in use. Sometimes leaving the FPU enabled may
    also mask kernel bugs where FPU operations are executed when the FPU
    might not be enabled.
    
    So lets disable the FPU in the MSA case too.
    
    Fixes: 33c771ba ("MIPS: save/disable MSA in lose_fpu")
    Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: Paul Burton <paul.burton@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/9323/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
    Signed-off-by: default avatarSasha Levin <sasha.levin@oracle.com>
    00f1187a
fpu.h 3.99 KB