diff mbox series

[v2,04/12] powerpc/pseries/svm: Add a powerpc version of prot_guest_has()

Message ID 000f627ce20c6504dd8d118d85bd69e7717b752f.1628873970.git.thomas.lendacky@amd.com
State New
Headers show
Series [v2,01/12] x86/ioremap: Selectively build arch override encryption functions | expand

Commit Message

Tom Lendacky Aug. 13, 2021, 4:59 p.m. UTC
Introduce a powerpc version of the prot_guest_has() function. This will
be used to replace the powerpc mem_encrypt_active() implementation, so
the implementation will initially only support the PATTR_MEM_ENCRYPT
attribute.

Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
---
 arch/powerpc/include/asm/protected_guest.h | 30 ++++++++++++++++++++++
 arch/powerpc/platforms/pseries/Kconfig     |  1 +
 2 files changed, 31 insertions(+)
 create mode 100644 arch/powerpc/include/asm/protected_guest.h

Comments

Borislav Petkov Aug. 17, 2021, 8:35 a.m. UTC | #1
On Fri, Aug 13, 2021 at 11:59:23AM -0500, Tom Lendacky wrote:
> Introduce a powerpc version of the prot_guest_has() function. This will

> be used to replace the powerpc mem_encrypt_active() implementation, so

> the implementation will initially only support the PATTR_MEM_ENCRYPT

> attribute.

> 

> Cc: Michael Ellerman <mpe@ellerman.id.au>

> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>

> Cc: Paul Mackerras <paulus@samba.org>

> Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>

> ---

>  arch/powerpc/include/asm/protected_guest.h | 30 ++++++++++++++++++++++

>  arch/powerpc/platforms/pseries/Kconfig     |  1 +

>  2 files changed, 31 insertions(+)

>  create mode 100644 arch/powerpc/include/asm/protected_guest.h

> 

> diff --git a/arch/powerpc/include/asm/protected_guest.h b/arch/powerpc/include/asm/protected_guest.h

> new file mode 100644

> index 000000000000..ce55c2c7e534

> --- /dev/null

> +++ b/arch/powerpc/include/asm/protected_guest.h

> @@ -0,0 +1,30 @@

> +/* SPDX-License-Identifier: GPL-2.0-only */

> +/*

> + * Protected Guest (and Host) Capability checks

> + *

> + * Copyright (C) 2021 Advanced Micro Devices, Inc.

> + *

> + * Author: Tom Lendacky <thomas.lendacky@amd.com>

> + */

> +

> +#ifndef _POWERPC_PROTECTED_GUEST_H

> +#define _POWERPC_PROTECTED_GUEST_H

> +

> +#include <asm/svm.h>

> +

> +#ifndef __ASSEMBLY__


Same thing here. Pls audit the whole set whether those __ASSEMBLY__
guards are really needed and remove them if not.

Thx.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette
Michael Ellerman Aug. 17, 2021, 12:38 p.m. UTC | #2
Tom Lendacky <thomas.lendacky@amd.com> writes:
> Introduce a powerpc version of the prot_guest_has() function. This will

> be used to replace the powerpc mem_encrypt_active() implementation, so

> the implementation will initially only support the PATTR_MEM_ENCRYPT

> attribute.

>

> Cc: Michael Ellerman <mpe@ellerman.id.au>

> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>

> Cc: Paul Mackerras <paulus@samba.org>

> Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>

> ---

>  arch/powerpc/include/asm/protected_guest.h | 30 ++++++++++++++++++++++

>  arch/powerpc/platforms/pseries/Kconfig     |  1 +

>  2 files changed, 31 insertions(+)

>  create mode 100644 arch/powerpc/include/asm/protected_guest.h

>

> diff --git a/arch/powerpc/include/asm/protected_guest.h b/arch/powerpc/include/asm/protected_guest.h

> new file mode 100644

> index 000000000000..ce55c2c7e534

> --- /dev/null

> +++ b/arch/powerpc/include/asm/protected_guest.h

> @@ -0,0 +1,30 @@

> +/* SPDX-License-Identifier: GPL-2.0-only */

> +/*

> + * Protected Guest (and Host) Capability checks

> + *

> + * Copyright (C) 2021 Advanced Micro Devices, Inc.

> + *

> + * Author: Tom Lendacky <thomas.lendacky@amd.com>

> + */

> +

> +#ifndef _POWERPC_PROTECTED_GUEST_H

> +#define _POWERPC_PROTECTED_GUEST_H


Minor nit, we would usually use _ASM_POWERPC_PROTECTED_GUEST_H

Otherwise looks OK to me.

Acked-by: Michael Ellerman <mpe@ellerman.id.au>


cheers
Tom Lendacky Aug. 17, 2021, 2:11 p.m. UTC | #3
On 8/17/21 3:35 AM, Borislav Petkov wrote:
> On Fri, Aug 13, 2021 at 11:59:23AM -0500, Tom Lendacky wrote:

>> Introduce a powerpc version of the prot_guest_has() function. This will

>> be used to replace the powerpc mem_encrypt_active() implementation, so

>> the implementation will initially only support the PATTR_MEM_ENCRYPT

>> attribute.

>>

>> Cc: Michael Ellerman <mpe@ellerman.id.au>

>> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>

>> Cc: Paul Mackerras <paulus@samba.org>

>> Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>

>> ---

>>  arch/powerpc/include/asm/protected_guest.h | 30 ++++++++++++++++++++++

>>  arch/powerpc/platforms/pseries/Kconfig     |  1 +

>>  2 files changed, 31 insertions(+)

>>  create mode 100644 arch/powerpc/include/asm/protected_guest.h

>>

>> diff --git a/arch/powerpc/include/asm/protected_guest.h b/arch/powerpc/include/asm/protected_guest.h

>> new file mode 100644

>> index 000000000000..ce55c2c7e534

>> --- /dev/null

>> +++ b/arch/powerpc/include/asm/protected_guest.h

>> @@ -0,0 +1,30 @@

>> +/* SPDX-License-Identifier: GPL-2.0-only */

>> +/*

>> + * Protected Guest (and Host) Capability checks

>> + *

>> + * Copyright (C) 2021 Advanced Micro Devices, Inc.

>> + *

>> + * Author: Tom Lendacky <thomas.lendacky@amd.com>

>> + */

>> +

>> +#ifndef _POWERPC_PROTECTED_GUEST_H

>> +#define _POWERPC_PROTECTED_GUEST_H

>> +

>> +#include <asm/svm.h>

>> +

>> +#ifndef __ASSEMBLY__

> 

> Same thing here. Pls audit the whole set whether those __ASSEMBLY__

> guards are really needed and remove them if not.


Will do.

Thanks,
Tom

> 

> Thx.

>
Christoph Hellwig Aug. 19, 2021, 9:55 a.m. UTC | #4
On Fri, Aug 13, 2021 at 11:59:23AM -0500, Tom Lendacky wrote:
> +static inline bool prot_guest_has(unsigned int attr)


No reall need to have this inline.  In fact I'd suggest we havea the
prototype in a common header so that everyone must implement it out
of line.
Tom Lendacky Aug. 19, 2021, 6:34 p.m. UTC | #5
On 8/19/21 4:55 AM, Christoph Hellwig wrote:
> On Fri, Aug 13, 2021 at 11:59:23AM -0500, Tom Lendacky wrote:

>> +static inline bool prot_guest_has(unsigned int attr)

> 

> No reall need to have this inline.  In fact I'd suggest we havea the

> prototype in a common header so that everyone must implement it out

> of line.


I'll do the same thing I end up doing for x86.

Thanks,
Tom

>
diff mbox series

Patch

diff --git a/arch/powerpc/include/asm/protected_guest.h b/arch/powerpc/include/asm/protected_guest.h
new file mode 100644
index 000000000000..ce55c2c7e534
--- /dev/null
+++ b/arch/powerpc/include/asm/protected_guest.h
@@ -0,0 +1,30 @@ 
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Protected Guest (and Host) Capability checks
+ *
+ * Copyright (C) 2021 Advanced Micro Devices, Inc.
+ *
+ * Author: Tom Lendacky <thomas.lendacky@amd.com>
+ */
+
+#ifndef _POWERPC_PROTECTED_GUEST_H
+#define _POWERPC_PROTECTED_GUEST_H
+
+#include <asm/svm.h>
+
+#ifndef __ASSEMBLY__
+
+static inline bool prot_guest_has(unsigned int attr)
+{
+	switch (attr) {
+	case PATTR_MEM_ENCRYPT:
+		return is_secure_guest();
+
+	default:
+		return false;
+	}
+}
+
+#endif	/* __ASSEMBLY__ */
+
+#endif	/* _POWERPC_PROTECTED_GUEST_H */
diff --git a/arch/powerpc/platforms/pseries/Kconfig b/arch/powerpc/platforms/pseries/Kconfig
index 5e037df2a3a1..8ce5417d6feb 100644
--- a/arch/powerpc/platforms/pseries/Kconfig
+++ b/arch/powerpc/platforms/pseries/Kconfig
@@ -159,6 +159,7 @@  config PPC_SVM
 	select SWIOTLB
 	select ARCH_HAS_MEM_ENCRYPT
 	select ARCH_HAS_FORCE_DMA_UNENCRYPTED
+	select ARCH_HAS_PROTECTED_GUEST
 	help
 	 There are certain POWER platforms which support secure guests using
 	 the Protected Execution Facility, with the help of an Ultravisor