Linux MIPS Architecture development
 help / color / mirror / Atom feed
* [PATCH 2/9] MIPS: Require O32 FP64 support for MIPS64 with O32 compat
       [not found] <1437999987-24879-1-git-send-email-stefan@sevenbyte.org>
@ 2015-07-27 12:26 ` Stefan Tatschner
  2015-07-27 12:26   ` Stefan Tatschner
  2015-07-27 12:26 ` [PATCH 6/9] MIPS: fpu.h: Allow 64-bit FPU on a 64-bit MIPS R6 CPU Stefan Tatschner
  1 sibling, 1 reply; 5+ messages in thread
From: Stefan Tatschner @ 2015-07-27 12:26 UTC (permalink / raw)
  To: ludwig.kuerzinger
  Cc: Paul Burton, Markos Chandras, stable, linux-mips, Matthew Fortune,
	linux-kernel, Ralf Baechle

[-- Attachment #1: Type: text/plain, Size: 44 bytes --]

This is a multi-part message in MIME format.

[-- Attachment #2: Type: text/plain, Size: 961 bytes --]


MIPS32r6 code requires FP64 (ie. FR=1) support. Building a kernel with
support for MIPS32r6 binaries but without support for O32 with FP64 is
therefore a problem which can lead to incorrectly executed userland.

CONFIG_MIPS_O32_FP64_SUPPORT is already selected when the kernel is
configured for MIPS32r6, but not when the kernel is configured for
MIPS64r6 with O32 compat support. Select CONFIG_MIPS_O32_FP64_SUPPORT in
such configurations to prevent building kernels which execute MIPS32r6
userland incorrectly.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Cc: Markos Chandras <markos.chandras@imgtec.com>
Cc: <stable@vger.kernel.org> # v4.0-
Cc: linux-mips@linux-mips.org
Cc: Matthew Fortune <matthew.fortune@imgtec.com>
Cc: stable@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/10674/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
---
 arch/mips/Kconfig | 1 +
 1 file changed, 1 insertion(+)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-MIPS-Require-O32-FP64-support-for-MIPS64-with-O32-co.patch --]
[-- Type: text/x-patch; name="0002-MIPS-Require-O32-FP64-support-for-MIPS64-with-O32-co.patch", Size: 446 bytes --]

diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index aab7e46..66dc359 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1427,6 +1427,7 @@ config CPU_MIPS64_R6
 	select CPU_SUPPORTS_HIGHMEM
 	select CPU_SUPPORTS_MSA
 	select GENERIC_CSUM
+	select MIPS_O32_FP64_SUPPORT if MIPS32_O32
 	help
 	  Choose this option to build a kernel for release 6 or later of the
 	  MIPS64 architecture.  New MIPS processors, starting with the Warrior

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/9] MIPS: Require O32 FP64 support for MIPS64 with O32 compat
  2015-07-27 12:26 ` [PATCH 2/9] MIPS: Require O32 FP64 support for MIPS64 with O32 compat Stefan Tatschner
@ 2015-07-27 12:26   ` Stefan Tatschner
  0 siblings, 0 replies; 5+ messages in thread
From: Stefan Tatschner @ 2015-07-27 12:26 UTC (permalink / raw)
  To: ludwig.kuerzinger
  Cc: Paul Burton, Markos Chandras, stable, linux-mips, Matthew Fortune,
	linux-kernel, Ralf Baechle

[-- Attachment #1: Type: text/plain, Size: 44 bytes --]

This is a multi-part message in MIME format.

[-- Attachment #2: Type: text/plain, Size: 961 bytes --]


MIPS32r6 code requires FP64 (ie. FR=1) support. Building a kernel with
support for MIPS32r6 binaries but without support for O32 with FP64 is
therefore a problem which can lead to incorrectly executed userland.

CONFIG_MIPS_O32_FP64_SUPPORT is already selected when the kernel is
configured for MIPS32r6, but not when the kernel is configured for
MIPS64r6 with O32 compat support. Select CONFIG_MIPS_O32_FP64_SUPPORT in
such configurations to prevent building kernels which execute MIPS32r6
userland incorrectly.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Cc: Markos Chandras <markos.chandras@imgtec.com>
Cc: <stable@vger.kernel.org> # v4.0-
Cc: linux-mips@linux-mips.org
Cc: Matthew Fortune <matthew.fortune@imgtec.com>
Cc: stable@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/10674/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
---
 arch/mips/Kconfig | 1 +
 1 file changed, 1 insertion(+)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-MIPS-Require-O32-FP64-support-for-MIPS64-with-O32-co.patch --]
[-- Type: text/x-patch; name="0002-MIPS-Require-O32-FP64-support-for-MIPS64-with-O32-co.patch", Size: 446 bytes --]

diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index aab7e46..66dc359 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1427,6 +1427,7 @@ config CPU_MIPS64_R6
 	select CPU_SUPPORTS_HIGHMEM
 	select CPU_SUPPORTS_MSA
 	select GENERIC_CSUM
+	select MIPS_O32_FP64_SUPPORT if MIPS32_O32
 	help
 	  Choose this option to build a kernel for release 6 or later of the
 	  MIPS64 architecture.  New MIPS processors, starting with the Warrior

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 6/9] MIPS: fpu.h: Allow 64-bit FPU on a 64-bit MIPS R6 CPU
       [not found] <1437999987-24879-1-git-send-email-stefan@sevenbyte.org>
  2015-07-27 12:26 ` [PATCH 2/9] MIPS: Require O32 FP64 support for MIPS64 with O32 compat Stefan Tatschner
@ 2015-07-27 12:26 ` Stefan Tatschner
  2015-07-27 12:26   ` Stefan Tatschner
  2015-07-28 12:34   ` Ralf Baechle
  1 sibling, 2 replies; 5+ messages in thread
From: Stefan Tatschner @ 2015-07-27 12:26 UTC (permalink / raw)
  To: ludwig.kuerzinger; +Cc: Markos Chandras, stable, linux-mips, Ralf Baechle

[-- Attachment #1: Type: text/plain, Size: 44 bytes --]

This is a multi-part message in MIME format.

[-- Attachment #2: Type: text/plain, Size: 780 bytes --]


Commit 6134d94923d0 ("MIPS: asm: fpu: Allow 64-bit FPU on MIPS32 R6")
added support for 64-bit FPU on a 32-bit MIPS R6 processor but it missed
the 64-bit CPU case leading to FPU failures when requesting FR=1 mode
(which is always the case for MIPS R6 userland) when running a 32-bit
kernel on a 64-bit CPU. We also fix the MIPS R2 case.

Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Fixes: 6134d94923d0 ("MIPS: asm: fpu: Allow 64-bit FPU on MIPS32 R6")
Reviewed-by: Paul Burton <paul.burton@imgtec.com>
Cc: <stable@vger.kernel.org> # 4.0+
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/10734/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
---
 arch/mips/include/asm/fpu.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0006-MIPS-fpu.h-Allow-64-bit-FPU-on-a-64-bit-MIPS-R6-CPU.patch --]
[-- Type: text/x-patch; name="0006-MIPS-fpu.h-Allow-64-bit-FPU-on-a-64-bit-MIPS-R6-CPU.patch", Size: 501 bytes --]

diff --git a/arch/mips/include/asm/fpu.h b/arch/mips/include/asm/fpu.h
index 084780b..1b06251 100644
--- a/arch/mips/include/asm/fpu.h
+++ b/arch/mips/include/asm/fpu.h
@@ -74,7 +74,7 @@ static inline int __enable_fpu(enum fpu_mode mode)
 		goto fr_common;
 
 	case FPU_64BIT:
-#if !(defined(CONFIG_CPU_MIPS32_R2) || defined(CONFIG_CPU_MIPS32_R6) \
+#if !(defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_CPU_MIPSR6) \
       || defined(CONFIG_64BIT))
 		/* we only have a 32-bit FPU */
 		return SIGFPE;

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 6/9] MIPS: fpu.h: Allow 64-bit FPU on a 64-bit MIPS R6 CPU
  2015-07-27 12:26 ` [PATCH 6/9] MIPS: fpu.h: Allow 64-bit FPU on a 64-bit MIPS R6 CPU Stefan Tatschner
@ 2015-07-27 12:26   ` Stefan Tatschner
  2015-07-28 12:34   ` Ralf Baechle
  1 sibling, 0 replies; 5+ messages in thread
From: Stefan Tatschner @ 2015-07-27 12:26 UTC (permalink / raw)
  To: ludwig.kuerzinger; +Cc: Markos Chandras, stable, linux-mips, Ralf Baechle

[-- Attachment #1: Type: text/plain, Size: 44 bytes --]

This is a multi-part message in MIME format.

[-- Attachment #2: Type: text/plain, Size: 780 bytes --]


Commit 6134d94923d0 ("MIPS: asm: fpu: Allow 64-bit FPU on MIPS32 R6")
added support for 64-bit FPU on a 32-bit MIPS R6 processor but it missed
the 64-bit CPU case leading to FPU failures when requesting FR=1 mode
(which is always the case for MIPS R6 userland) when running a 32-bit
kernel on a 64-bit CPU. We also fix the MIPS R2 case.

Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Fixes: 6134d94923d0 ("MIPS: asm: fpu: Allow 64-bit FPU on MIPS32 R6")
Reviewed-by: Paul Burton <paul.burton@imgtec.com>
Cc: <stable@vger.kernel.org> # 4.0+
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/10734/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
---
 arch/mips/include/asm/fpu.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0006-MIPS-fpu.h-Allow-64-bit-FPU-on-a-64-bit-MIPS-R6-CPU.patch --]
[-- Type: text/x-patch; name="0006-MIPS-fpu.h-Allow-64-bit-FPU-on-a-64-bit-MIPS-R6-CPU.patch", Size: 501 bytes --]

diff --git a/arch/mips/include/asm/fpu.h b/arch/mips/include/asm/fpu.h
index 084780b..1b06251 100644
--- a/arch/mips/include/asm/fpu.h
+++ b/arch/mips/include/asm/fpu.h
@@ -74,7 +74,7 @@ static inline int __enable_fpu(enum fpu_mode mode)
 		goto fr_common;
 
 	case FPU_64BIT:
-#if !(defined(CONFIG_CPU_MIPS32_R2) || defined(CONFIG_CPU_MIPS32_R6) \
+#if !(defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_CPU_MIPSR6) \
       || defined(CONFIG_64BIT))
 		/* we only have a 32-bit FPU */
 		return SIGFPE;

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 6/9] MIPS: fpu.h: Allow 64-bit FPU on a 64-bit MIPS R6 CPU
  2015-07-27 12:26 ` [PATCH 6/9] MIPS: fpu.h: Allow 64-bit FPU on a 64-bit MIPS R6 CPU Stefan Tatschner
  2015-07-27 12:26   ` Stefan Tatschner
@ 2015-07-28 12:34   ` Ralf Baechle
  1 sibling, 0 replies; 5+ messages in thread
From: Ralf Baechle @ 2015-07-28 12:34 UTC (permalink / raw)
  To: Stefan Tatschner; +Cc: ludwig.kuerzinger, Markos Chandras, stable, linux-mips

Stefan,

On Mon, Jul 27, 2015 at 02:26:24PM +0200, Stefan Tatschner wrote:
> Date:   Mon, 27 Jul 2015 14:26:24 +0200
> From: Stefan Tatschner <stefan@sevenbyte.org>
> To: ludwig.kuerzinger@aisec.fraunhofer.de
> Cc: Markos Chandras <markos.chandras@imgtec.com>, stable@vger.kernel.org,
>  linux-mips@linux-mips.org, Ralf Baechle <ralf@linux-mips.org>
> Subject: [PATCH 6/9] MIPS: fpu.h: Allow 64-bit FPU on a 64-bit MIPS R6 CPU
> Content-Type: multipart/mixed; boundary="------------2.4.6"
> 
> 
> Commit 6134d94923d0 ("MIPS: asm: fpu: Allow 64-bit FPU on MIPS32 R6")
> added support for 64-bit FPU on a 32-bit MIPS R6 processor but it missed
> the 64-bit CPU case leading to FPU failures when requesting FR=1 mode
> (which is always the case for MIPS R6 userland) when running a 32-bit
> kernel on a 64-bit CPU. We also fix the MIPS R2 case.
> 
> Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
> Fixes: 6134d94923d0 ("MIPS: asm: fpu: Allow 64-bit FPU on MIPS32 R6")
> Reviewed-by: Paul Burton <paul.burton@imgtec.com>
> Cc: <stable@vger.kernel.org> # 4.0+
> Cc: linux-mips@linux-mips.org
> Patchwork: https://patchwork.linux-mips.org/patch/10734/
> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
> ---
>  arch/mips/include/asm/fpu.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 

> diff --git a/arch/mips/include/asm/fpu.h b/arch/mips/include/asm/fpu.h
> index 084780b..1b06251 100644
> --- a/arch/mips/include/asm/fpu.h
> +++ b/arch/mips/include/asm/fpu.h
> @@ -74,7 +74,7 @@ static inline int __enable_fpu(enum fpu_mode mode)
>  		goto fr_common;
>  
>  	case FPU_64BIT:
> -#if !(defined(CONFIG_CPU_MIPS32_R2) || defined(CONFIG_CPU_MIPS32_R6) \
> +#if !(defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_CPU_MIPSR6) \
>        || defined(CONFIG_64BIT))
>  		/* we only have a 32-bit FPU */
>  		return SIGFPE;

You seem to be reflecting patch back to the linux-mips mailing list and
other folks mentioned in patches, including myself.  Please stop that.

  Ralf

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-07-28 12:34 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1437999987-24879-1-git-send-email-stefan@sevenbyte.org>
2015-07-27 12:26 ` [PATCH 2/9] MIPS: Require O32 FP64 support for MIPS64 with O32 compat Stefan Tatschner
2015-07-27 12:26   ` Stefan Tatschner
2015-07-27 12:26 ` [PATCH 6/9] MIPS: fpu.h: Allow 64-bit FPU on a 64-bit MIPS R6 CPU Stefan Tatschner
2015-07-27 12:26   ` Stefan Tatschner
2015-07-28 12:34   ` Ralf Baechle

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox