All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Rutland <mark.rutland@arm.com>
To: linux-arm-kernel@lists.infradead.org
Cc: arnd@arndb.de, catalin.marinas@arm.com,
	christoffer.dall@linaro.org, Dave.Martin@arm.com,
	jiong.wang@arm.com, kvmarm@lists.cs.columbia.edu,
	linux-arch@vger.kernel.org, marc.zyngier@arm.com,
	mark.rutland@arm.com, suzuki.poulose@arm.com,
	will.deacon@arm.com, yao.qi@arm.com,
	linux-kernel@vger.kernel.org,
	kernel-hardening@lists.openwall.com
Subject: [PATCH 05/11] arm64/cpufeature: detect pointer authentication
Date: Wed, 19 Jul 2017 17:01:26 +0100	[thread overview]
Message-ID: <1500480092-28480-6-git-send-email-mark.rutland@arm.com> (raw)
In-Reply-To: <1500480092-28480-1-git-send-email-mark.rutland@arm.com>

So that we can dynamically handle the presence of pointer authentication
functionality, wire up probing code in cpufeature.c.

Currently, this only detects the presence of an architected algorithm.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
---
 arch/arm64/include/asm/cpucaps.h |  4 +++-
 arch/arm64/kernel/cpufeature.c   | 22 ++++++++++++++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/include/asm/cpucaps.h b/arch/arm64/include/asm/cpucaps.h
index 8d2272c..903b458 100644
--- a/arch/arm64/include/asm/cpucaps.h
+++ b/arch/arm64/include/asm/cpucaps.h
@@ -39,7 +39,9 @@
 #define ARM64_WORKAROUND_QCOM_FALKOR_E1003	18
 #define ARM64_WORKAROUND_858921			19
 #define ARM64_WORKAROUND_CAVIUM_30115		20
+#define ARM64_HAS_ADDRESS_AUTH			21
+#define ARM64_HAS_GENERIC_AUTH			22
 
-#define ARM64_NCAPS				21
+#define ARM64_NCAPS				23
 
 #endif /* __ASM_CPUCAPS_H */
diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c
index b23ad83..4016b1e7 100644
--- a/arch/arm64/kernel/cpufeature.c
+++ b/arch/arm64/kernel/cpufeature.c
@@ -892,6 +892,28 @@ static bool has_no_fpsimd(const struct arm64_cpu_capabilities *entry, int __unus
 		.min_field_value = 0,
 		.matches = has_no_fpsimd,
 	},
+#ifdef CONFIG_ARM64_POINTER_AUTHENTICATION
+	{
+		.desc = "Address authentication (architected algorithm)",
+		.capability = ARM64_HAS_ADDRESS_AUTH,
+		.def_scope = SCOPE_SYSTEM,
+		.sys_reg = SYS_ID_AA64ISAR1_EL1,
+		.sign = FTR_UNSIGNED,
+		.field_pos = ID_AA64ISAR1_APA_SHIFT,
+		.min_field_value = ID_AA64ISAR1_APA_ARCHITECTED,
+		.matches = has_cpuid_feature,
+	},
+	{
+		.desc = "Generic authentication (architected algorithm)",
+		.capability = ARM64_HAS_GENERIC_AUTH,
+		.def_scope = SCOPE_SYSTEM,
+		.sys_reg = SYS_ID_AA64ISAR1_EL1,
+		.sign = FTR_UNSIGNED,
+		.field_pos = ID_AA64ISAR1_GPA_SHIFT,
+		.min_field_value = ID_AA64ISAR1_GPA_ARCHITECTED,
+		.matches = has_cpuid_feature
+	},
+#endif /* CONFIG_ARM64_POINTER_AUTHENTICATION */
 	{},
 };
 
-- 
1.9.1

WARNING: multiple messages have this Message-ID (diff)
From: mark.rutland@arm.com (Mark Rutland)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 05/11] arm64/cpufeature: detect pointer authentication
Date: Wed, 19 Jul 2017 17:01:26 +0100	[thread overview]
Message-ID: <1500480092-28480-6-git-send-email-mark.rutland@arm.com> (raw)
In-Reply-To: <1500480092-28480-1-git-send-email-mark.rutland@arm.com>

So that we can dynamically handle the presence of pointer authentication
functionality, wire up probing code in cpufeature.c.

Currently, this only detects the presence of an architected algorithm.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
---
 arch/arm64/include/asm/cpucaps.h |  4 +++-
 arch/arm64/kernel/cpufeature.c   | 22 ++++++++++++++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/include/asm/cpucaps.h b/arch/arm64/include/asm/cpucaps.h
index 8d2272c..903b458 100644
--- a/arch/arm64/include/asm/cpucaps.h
+++ b/arch/arm64/include/asm/cpucaps.h
@@ -39,7 +39,9 @@
 #define ARM64_WORKAROUND_QCOM_FALKOR_E1003	18
 #define ARM64_WORKAROUND_858921			19
 #define ARM64_WORKAROUND_CAVIUM_30115		20
+#define ARM64_HAS_ADDRESS_AUTH			21
+#define ARM64_HAS_GENERIC_AUTH			22
 
-#define ARM64_NCAPS				21
+#define ARM64_NCAPS				23
 
 #endif /* __ASM_CPUCAPS_H */
diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c
index b23ad83..4016b1e7 100644
--- a/arch/arm64/kernel/cpufeature.c
+++ b/arch/arm64/kernel/cpufeature.c
@@ -892,6 +892,28 @@ static bool has_no_fpsimd(const struct arm64_cpu_capabilities *entry, int __unus
 		.min_field_value = 0,
 		.matches = has_no_fpsimd,
 	},
+#ifdef CONFIG_ARM64_POINTER_AUTHENTICATION
+	{
+		.desc = "Address authentication (architected algorithm)",
+		.capability = ARM64_HAS_ADDRESS_AUTH,
+		.def_scope = SCOPE_SYSTEM,
+		.sys_reg = SYS_ID_AA64ISAR1_EL1,
+		.sign = FTR_UNSIGNED,
+		.field_pos = ID_AA64ISAR1_APA_SHIFT,
+		.min_field_value = ID_AA64ISAR1_APA_ARCHITECTED,
+		.matches = has_cpuid_feature,
+	},
+	{
+		.desc = "Generic authentication (architected algorithm)",
+		.capability = ARM64_HAS_GENERIC_AUTH,
+		.def_scope = SCOPE_SYSTEM,
+		.sys_reg = SYS_ID_AA64ISAR1_EL1,
+		.sign = FTR_UNSIGNED,
+		.field_pos = ID_AA64ISAR1_GPA_SHIFT,
+		.min_field_value = ID_AA64ISAR1_GPA_ARCHITECTED,
+		.matches = has_cpuid_feature
+	},
+#endif /* CONFIG_ARM64_POINTER_AUTHENTICATION */
 	{},
 };
 
-- 
1.9.1

WARNING: multiple messages have this Message-ID (diff)
From: Mark Rutland <mark.rutland@arm.com>
To: linux-arm-kernel@lists.infradead.org
Cc: arnd@arndb.de, catalin.marinas@arm.com,
	christoffer.dall@linaro.org, Dave.Martin@arm.com,
	jiong.wang@arm.com, kvmarm@lists.cs.columbia.edu,
	linux-arch@vger.kernel.org, marc.zyngier@arm.com,
	mark.rutland@arm.com, suzuki.poulose@arm.com,
	will.deacon@arm.com, yao.qi@arm.com,
	linux-kernel@vger.kernel.org,
	kernel-hardening@lists.openwall.com
Subject: [kernel-hardening] [PATCH 05/11] arm64/cpufeature: detect pointer authentication
Date: Wed, 19 Jul 2017 17:01:26 +0100	[thread overview]
Message-ID: <1500480092-28480-6-git-send-email-mark.rutland@arm.com> (raw)
In-Reply-To: <1500480092-28480-1-git-send-email-mark.rutland@arm.com>

So that we can dynamically handle the presence of pointer authentication
functionality, wire up probing code in cpufeature.c.

Currently, this only detects the presence of an architected algorithm.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
---
 arch/arm64/include/asm/cpucaps.h |  4 +++-
 arch/arm64/kernel/cpufeature.c   | 22 ++++++++++++++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/include/asm/cpucaps.h b/arch/arm64/include/asm/cpucaps.h
index 8d2272c..903b458 100644
--- a/arch/arm64/include/asm/cpucaps.h
+++ b/arch/arm64/include/asm/cpucaps.h
@@ -39,7 +39,9 @@
 #define ARM64_WORKAROUND_QCOM_FALKOR_E1003	18
 #define ARM64_WORKAROUND_858921			19
 #define ARM64_WORKAROUND_CAVIUM_30115		20
+#define ARM64_HAS_ADDRESS_AUTH			21
+#define ARM64_HAS_GENERIC_AUTH			22
 
-#define ARM64_NCAPS				21
+#define ARM64_NCAPS				23
 
 #endif /* __ASM_CPUCAPS_H */
diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c
index b23ad83..4016b1e7 100644
--- a/arch/arm64/kernel/cpufeature.c
+++ b/arch/arm64/kernel/cpufeature.c
@@ -892,6 +892,28 @@ static bool has_no_fpsimd(const struct arm64_cpu_capabilities *entry, int __unus
 		.min_field_value = 0,
 		.matches = has_no_fpsimd,
 	},
+#ifdef CONFIG_ARM64_POINTER_AUTHENTICATION
+	{
+		.desc = "Address authentication (architected algorithm)",
+		.capability = ARM64_HAS_ADDRESS_AUTH,
+		.def_scope = SCOPE_SYSTEM,
+		.sys_reg = SYS_ID_AA64ISAR1_EL1,
+		.sign = FTR_UNSIGNED,
+		.field_pos = ID_AA64ISAR1_APA_SHIFT,
+		.min_field_value = ID_AA64ISAR1_APA_ARCHITECTED,
+		.matches = has_cpuid_feature,
+	},
+	{
+		.desc = "Generic authentication (architected algorithm)",
+		.capability = ARM64_HAS_GENERIC_AUTH,
+		.def_scope = SCOPE_SYSTEM,
+		.sys_reg = SYS_ID_AA64ISAR1_EL1,
+		.sign = FTR_UNSIGNED,
+		.field_pos = ID_AA64ISAR1_GPA_SHIFT,
+		.min_field_value = ID_AA64ISAR1_GPA_ARCHITECTED,
+		.matches = has_cpuid_feature
+	},
+#endif /* CONFIG_ARM64_POINTER_AUTHENTICATION */
 	{},
 };
 
-- 
1.9.1

  parent reply	other threads:[~2017-07-19 16:03 UTC|newest]

Thread overview: 124+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-19 16:01 [PATCH 00/11] ARMv8.3 pointer authentication userspace support Mark Rutland
2017-07-19 16:01 ` [kernel-hardening] " Mark Rutland
2017-07-19 16:01 ` Mark Rutland
2017-07-19 16:01 ` [PATCH 01/11] arm64: docs: describe ELF hwcaps Mark Rutland
2017-07-19 16:01   ` [kernel-hardening] " Mark Rutland
2017-07-19 16:01   ` Mark Rutland
2017-07-19 16:01   ` Mark Rutland
2017-07-21 17:05   ` Dave Martin
2017-07-21 17:05     ` [kernel-hardening] " Dave Martin
2017-07-21 17:05     ` Dave Martin
2017-07-21 17:05     ` Dave Martin
2017-07-24 10:47     ` Suzuki K Poulose
2017-07-24 10:47       ` [kernel-hardening] " Suzuki K Poulose
2017-07-24 10:47       ` Suzuki K Poulose
2017-08-03 14:49   ` Catalin Marinas
2017-08-03 14:49     ` [kernel-hardening] " Catalin Marinas
2017-08-03 14:49     ` Catalin Marinas
2017-08-03 17:57   ` Kees Cook
2017-08-03 17:57     ` [kernel-hardening] " Kees Cook
2017-08-03 17:57     ` Kees Cook
2017-08-03 17:57     ` Kees Cook
2017-07-19 16:01 ` [PATCH 02/11] asm-generic: mm_hooks: allow hooks to be overridden individually Mark Rutland
2017-07-19 16:01   ` [kernel-hardening] " Mark Rutland
2017-07-19 16:01   ` Mark Rutland
2017-07-19 16:01   ` Mark Rutland
2017-07-19 16:01 ` [PATCH 03/11] arm64: add pointer authentication register bits Mark Rutland
2017-07-19 16:01   ` [kernel-hardening] " Mark Rutland
2017-07-19 16:01   ` Mark Rutland
2017-07-19 16:01 ` [PATCH 04/11] arm64/cpufeature: add ARMv8.3 id_aa64isar1 bits Mark Rutland
2017-07-19 16:01   ` [kernel-hardening] " Mark Rutland
2017-07-19 16:01   ` Mark Rutland
2017-07-19 16:01   ` Mark Rutland
2017-07-19 16:01   ` Mark Rutland
2017-07-19 16:01   ` Mark Rutland
2017-07-24 10:54   ` Suzuki K Poulose
2017-07-24 10:54     ` [kernel-hardening] " Suzuki K Poulose
2017-07-24 10:54     ` Suzuki K Poulose
2017-07-19 16:01 ` Mark Rutland [this message]
2017-07-19 16:01   ` [kernel-hardening] [PATCH 05/11] arm64/cpufeature: detect pointer authentication Mark Rutland
2017-07-19 16:01   ` Mark Rutland
2017-07-19 16:01 ` [PATCH 06/11] arm64: Don't trap host pointer auth use to EL2 Mark Rutland
2017-07-19 16:01   ` [kernel-hardening] " Mark Rutland
2017-07-19 16:01   ` Mark Rutland
2017-07-24 10:37   ` Dave Martin
2017-07-24 10:37     ` [kernel-hardening] " Dave Martin
2017-07-24 10:37     ` Dave Martin
2017-07-19 16:01 ` [PATCH 07/11] arm64: add basic pointer authentication support Mark Rutland
2017-07-19 16:01   ` [kernel-hardening] " Mark Rutland
2017-07-19 16:01   ` Mark Rutland
2017-07-25 15:26   ` Dave Martin
2017-07-25 15:26     ` [kernel-hardening] " Dave Martin
2017-07-25 15:26     ` Dave Martin
2017-07-25 15:26     ` Dave Martin
2017-08-11  7:46   ` Yao Qi
2017-08-11  7:46     ` [kernel-hardening] " Yao Qi
2017-08-11  7:46     ` Yao Qi
2017-08-11  8:45     ` Dave Martin
2017-08-11  8:45       ` [kernel-hardening] " Dave Martin
2017-08-11  8:45       ` Dave Martin
2017-08-11  8:45       ` Dave Martin
2017-07-19 16:01 ` [PATCH 08/11] arm64: expose user PAC bit positions via ptrace Mark Rutland
2017-07-19 16:01   ` [kernel-hardening] " Mark Rutland
2017-07-19 16:01   ` Mark Rutland
2017-07-19 16:01   ` Mark Rutland
2017-07-19 16:01 ` [PATCH 09/11] arm64/kvm: preserve host HCR_EL2 value Mark Rutland
2017-07-19 16:01   ` [kernel-hardening] " Mark Rutland
2017-07-19 16:01   ` Mark Rutland
2017-07-19 16:01   ` Mark Rutland
2017-08-01 11:00   ` Christoffer Dall
2017-08-01 11:00     ` [kernel-hardening] " Christoffer Dall
2017-08-01 11:00     ` Christoffer Dall
2017-08-01 11:00     ` Christoffer Dall
2017-07-19 16:01 ` [PATCH 10/11] arm64/kvm: context-switch ptrauth registers Mark Rutland
2017-07-19 16:01   ` [kernel-hardening] " Mark Rutland
2017-07-19 16:01   ` Mark Rutland
2017-07-19 16:01   ` Mark Rutland
2017-08-01 11:00   ` Christoffer Dall
2017-08-01 11:00     ` [kernel-hardening] " Christoffer Dall
2017-08-01 11:00     ` Christoffer Dall
2017-08-01 11:00     ` Christoffer Dall
2017-08-01 14:26     ` Mark Rutland
2017-08-01 14:26       ` [kernel-hardening] " Mark Rutland
2017-08-01 14:26       ` Mark Rutland
2017-08-01 14:32       ` Will Deacon
2017-08-01 14:32         ` [kernel-hardening] " Will Deacon
2017-08-01 14:32         ` Will Deacon
2017-08-01 17:02       ` Christoffer Dall
2017-08-01 17:02         ` [kernel-hardening] " Christoffer Dall
2017-08-01 17:02         ` Christoffer Dall
2017-07-19 16:01 ` [PATCH 11/11] arm64: docs: document pointer authentication Mark Rutland
2017-07-19 16:01   ` [kernel-hardening] " Mark Rutland
2017-07-19 16:01   ` Mark Rutland
2017-07-19 16:01   ` Mark Rutland
2017-07-21 17:05 ` [PATCH 00/11] ARMv8.3 pointer authentication userspace support Dave Martin
2017-07-21 17:05   ` [kernel-hardening] " Dave Martin
2017-07-21 17:05   ` Dave Martin
2017-07-21 17:05   ` Dave Martin
2017-07-25 12:06   ` Mark Rutland
2017-07-25 12:06     ` [kernel-hardening] " Mark Rutland
2017-07-25 12:06     ` Mark Rutland
2017-07-25 14:00     ` Jiong Wang
2017-07-25 14:00       ` [kernel-hardening] " Jiong Wang
2017-07-25 14:00       ` Jiong Wang
2017-07-25 14:00       ` Jiong Wang
2017-08-11 11:29     ` Mark Rutland
2017-08-11 11:29       ` [kernel-hardening] " Mark Rutland
2017-08-11 11:29       ` Mark Rutland
2017-07-24 11:52 ` Yao Qi
2017-07-24 11:52   ` [kernel-hardening] " Yao Qi
2017-07-24 11:52   ` Yao Qi
2017-07-25 11:32 ` Yao Qi
2017-07-25 11:32   ` [kernel-hardening] " Yao Qi
2017-07-25 11:32   ` Yao Qi
2017-07-25 16:01   ` Mark Rutland
2017-07-25 16:01     ` [kernel-hardening] " Mark Rutland
2017-07-25 16:01     ` Mark Rutland
2017-07-25 14:12 ` [kernel-hardening] " Li Kun
2017-07-25 14:12   ` Li Kun
2017-07-25 14:12   ` Li Kun
2017-07-25 14:12   ` Li Kun
2017-07-25 15:12   ` Mark Rutland
2017-07-25 15:12     ` Mark Rutland
2017-07-25 15:12     ` Mark Rutland
2017-07-25 15:12     ` Mark Rutland

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1500480092-28480-6-git-send-email-mark.rutland@arm.com \
    --to=mark.rutland@arm.com \
    --cc=Dave.Martin@arm.com \
    --cc=arnd@arndb.de \
    --cc=catalin.marinas@arm.com \
    --cc=christoffer.dall@linaro.org \
    --cc=jiong.wang@arm.com \
    --cc=kernel-hardening@lists.openwall.com \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marc.zyngier@arm.com \
    --cc=suzuki.poulose@arm.com \
    --cc=will.deacon@arm.com \
    --cc=yao.qi@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.