• Maciej W. Rozycki's avatar
    MIPS: Validate PR_SET_FP_MODE prctl(2) requests against the ABI of the task · b67336ee
    Maciej W. Rozycki authored
    Fix an API loophole introduced with commit 9791554b ("MIPS,prctl:
    add PR_[GS]ET_FP_MODE prctl options for MIPS"), where the caller of
    prctl(2) is incorrectly allowed to make a change to CP0.Status.FR or
    CP0.Config5.FRE register bits even if CONFIG_MIPS_O32_FP64_SUPPORT has
    not been enabled, despite that an executable requesting the mode
    requested via ELF file annotation would not be allowed to run in the
    first place, or for n64 and n64 ABI tasks which do not have non-default
    modes defined at all.  Add suitable checks to `mips_set_process_fp_mode'
    and bail out if an invalid mode change has been requested for the ABI in
    effect, even if the FPU hardware or emulation would otherwise allow it.
    
    Always succeed however without taking any further action if the mode
    requested is the same as one already in effect, regardless of whether
    any mode change, should it be requested, would actually be allowed for
    the task concerned.
    Signed-off-by: default avatarMaciej W. Rozycki <macro@mips.com>
    Fixes: 9791554b ("MIPS,prctl: add PR_[GS]ET_FP_MODE prctl options for MIPS")
    Reviewed-by: default avatarPaul Burton <paul.burton@mips.com>
    Cc: James Hogan <james.hogan@mips.com>
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Cc: stable@vger.kernel.org # 4.0+
    Patchwork: https://patchwork.linux-mips.org/patch/17800/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
    b67336ee
process.c 19.7 KB