diff mbox

arm64: efi: Don't include EFI fpsimd save/restore code in non-EFI kernels

Message ID 1504193606-14461-1-git-send-email-Dave.Martin@arm.com (mailing list archive)
State New, archived
Headers show

Commit Message

Dave Martin Aug. 31, 2017, 3:33 p.m. UTC
__efi_fpsimd_begin()/__efi_fpsimd_end() are for use when making EFI
calls only, so using them in non-EFI kernels is not allowed.

This patch compiles them out if CONFIG_EFI is not set.

Signed-off-by: Dave Martin <Dave.Martin@arm.com>
---
 arch/arm64/kernel/fpsimd.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Ard Biesheuvel Aug. 31, 2017, 3:46 p.m. UTC | #1
On 31 August 2017 at 16:33, Dave Martin <Dave.Martin@arm.com> wrote:
> __efi_fpsimd_begin()/__efi_fpsimd_end() are for use when making EFI
> calls only, so using them in non-EFI kernels is not allowed.
>
> This patch compiles them out if CONFIG_EFI is not set.
>
> Signed-off-by: Dave Martin <Dave.Martin@arm.com>

Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

I suppose we could also move these into arch/arm64/kernel/efi.c

> ---
>  arch/arm64/kernel/fpsimd.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/arch/arm64/kernel/fpsimd.c b/arch/arm64/kernel/fpsimd.c
> index 3a68cf3..f444f37 100644
> --- a/arch/arm64/kernel/fpsimd.c
> +++ b/arch/arm64/kernel/fpsimd.c
> @@ -321,6 +321,8 @@ void kernel_neon_end(void)
>  }
>  EXPORT_SYMBOL(kernel_neon_end);
>
> +#ifdef CONFIG_EFI
> +
>  static DEFINE_PER_CPU(struct fpsimd_state, efi_fpsimd_state);
>  static DEFINE_PER_CPU(bool, efi_fpsimd_state_used);
>
> @@ -370,6 +372,8 @@ void __efi_fpsimd_end(void)
>                 kernel_neon_end();
>  }
>
> +#endif /* CONFIG_EFI */
> +
>  #endif /* CONFIG_KERNEL_MODE_NEON */
>
>  #ifdef CONFIG_CPU_PM
> --
> 2.1.4
>
Dave Martin Sept. 1, 2017, 9:22 a.m. UTC | #2
On Thu, Aug 31, 2017 at 04:46:32PM +0100, Ard Biesheuvel wrote:
> On 31 August 2017 at 16:33, Dave Martin <Dave.Martin@arm.com> wrote:
> > __efi_fpsimd_begin()/__efi_fpsimd_end() are for use when making EFI
> > calls only, so using them in non-EFI kernels is not allowed.
> >
> > This patch compiles them out if CONFIG_EFI is not set.
> >
> > Signed-off-by: Dave Martin <Dave.Martin@arm.com>
> 
> Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

Thanks

> I suppose we could also move these into arch/arm64/kernel/efi.c

Could do, though I initially preferred to keep them in fpsimd.c due to
the interactions with kernel-mode NEON.

I'll probably leave them where they are for now unless someone has a
strong view on it.

Cheers
---Dave
Catalin Marinas Sept. 7, 2017, 4:29 p.m. UTC | #3
On Thu, Aug 31, 2017 at 04:33:26PM +0100, Dave P Martin wrote:
> __efi_fpsimd_begin()/__efi_fpsimd_end() are for use when making EFI
> calls only, so using them in non-EFI kernels is not allowed.
> 
> This patch compiles them out if CONFIG_EFI is not set.
> 
> Signed-off-by: Dave Martin <Dave.Martin@arm.com>

Queued for 4.14. Thanks.
diff mbox

Patch

diff --git a/arch/arm64/kernel/fpsimd.c b/arch/arm64/kernel/fpsimd.c
index 3a68cf3..f444f37 100644
--- a/arch/arm64/kernel/fpsimd.c
+++ b/arch/arm64/kernel/fpsimd.c
@@ -321,6 +321,8 @@  void kernel_neon_end(void)
 }
 EXPORT_SYMBOL(kernel_neon_end);
 
+#ifdef CONFIG_EFI
+
 static DEFINE_PER_CPU(struct fpsimd_state, efi_fpsimd_state);
 static DEFINE_PER_CPU(bool, efi_fpsimd_state_used);
 
@@ -370,6 +372,8 @@  void __efi_fpsimd_end(void)
 		kernel_neon_end();
 }
 
+#endif /* CONFIG_EFI */
+
 #endif /* CONFIG_KERNEL_MODE_NEON */
 
 #ifdef CONFIG_CPU_PM