Re: [PATCH] MIPS: Avoid an FPE exception in FCSR mask probing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 06/02/2015 12:50, Maciej W. Rozycki wrote:
> Use the default FCSR value in mask probing, avoiding an FPE exception 
> where reset has left any exception enable and their corresponding cause 
> bits set and the register is then rewritten with these bits active.
> 
> Signed-off-by: Maciej W. Rozycki <macro@xxxxxxxxxxxxxx>
> ---
> linux-mips-fcsr-mask-fix.diff
> Index: linux-org-test/arch/mips/kernel/cpu-probe.c
> ===================================================================
> --- linux-org-test.orig/arch/mips/kernel/cpu-probe.c	2015-06-01 00:43:32.000000000 +0100
> +++ linux-org-test/arch/mips/kernel/cpu-probe.c	2015-06-02 12:14:10.088786000 +0100
> @@ -74,13 +74,12 @@ static inline void cpu_set_fpu_fcsr_mask
>  {
>  	unsigned long sr, mask, fcsr, fcsr0, fcsr1;
>  
> +	fcsr = c->fpu_csr31;
>  	mask = FPU_CSR_ALL_X | FPU_CSR_ALL_E | FPU_CSR_ALL_S | FPU_CSR_RM;
>  
>  	sr = read_c0_status();
>  	__enable_fpu(FPU_AS_IS);
>  
> -	fcsr = read_32bit_cp1_register(CP1_STATUS);
> -
>  	fcsr0 = fcsr & mask;
>  	write_32bit_cp1_register(CP1_STATUS, fcsr0);
>  	fcsr0 = read_32bit_cp1_register(CP1_STATUS);
> 

Tested-by: Joshua Kinard <kumba@xxxxxxxxxx>






[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux