All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Brown <broonie@kernel.org>
To: linux-arch@vger.kernel.org
Cc: Richard Henderson <richard.henderson@linaro.org>,
	Borislav Petkov <bp@alien8.de>,
	linux-s390@vger.kernel.org, herbert@gondor.apana.org.au,
	x86@kernel.org, linux-crypto@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-arm-kernel@lists.infradead.org,
	Ard Biesheuvel <ardb@kernel.org>,
	Richard Henderson <rth@twiddle.net>,
	Mark Brown <broonie@kernel.org>
Subject: [PATCH v2 07/10] x86: Mark archrandom.h functions __must_check
Date: Fri, 10 Jan 2020 14:54:19 +0000	[thread overview]
Message-ID: <20200110145422.49141-8-broonie@kernel.org> (raw)
In-Reply-To: <20200110145422.49141-1-broonie@kernel.org>

From: Richard Henderson <richard.henderson@linaro.org>

We must not use the pointer output without validating the
success of the random read.

Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 arch/x86/include/asm/archrandom.h | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/arch/x86/include/asm/archrandom.h b/arch/x86/include/asm/archrandom.h
index feb59461046c..7a4bb1bd4bdb 100644
--- a/arch/x86/include/asm/archrandom.h
+++ b/arch/x86/include/asm/archrandom.h
@@ -27,7 +27,7 @@
 
 /* Unconditional execution of RDRAND and RDSEED */
 
-static inline bool rdrand_long(unsigned long *v)
+static inline bool __must_check rdrand_long(unsigned long *v)
 {
 	bool ok;
 	unsigned int retry = RDRAND_RETRY_LOOPS;
@@ -41,7 +41,7 @@ static inline bool rdrand_long(unsigned long *v)
 	return false;
 }
 
-static inline bool rdrand_int(unsigned int *v)
+static inline bool __must_check rdrand_int(unsigned int *v)
 {
 	bool ok;
 	unsigned int retry = RDRAND_RETRY_LOOPS;
@@ -55,7 +55,7 @@ static inline bool rdrand_int(unsigned int *v)
 	return false;
 }
 
-static inline bool rdseed_long(unsigned long *v)
+static inline bool __must_check rdseed_long(unsigned long *v)
 {
 	bool ok;
 	asm volatile(RDSEED_LONG
@@ -64,7 +64,7 @@ static inline bool rdseed_long(unsigned long *v)
 	return ok;
 }
 
-static inline bool rdseed_int(unsigned int *v)
+static inline bool __must_check rdseed_int(unsigned int *v)
 {
 	bool ok;
 	asm volatile(RDSEED_INT
@@ -80,22 +80,22 @@ static inline bool rdseed_int(unsigned int *v)
  */
 #ifdef CONFIG_ARCH_RANDOM
 
-static inline bool arch_get_random_long(unsigned long *v)
+static inline bool __must_check arch_get_random_long(unsigned long *v)
 {
 	return static_cpu_has(X86_FEATURE_RDRAND) ? rdrand_long(v) : false;
 }
 
-static inline bool arch_get_random_int(unsigned int *v)
+static inline bool __must_check arch_get_random_int(unsigned int *v)
 {
 	return static_cpu_has(X86_FEATURE_RDRAND) ? rdrand_int(v) : false;
 }
 
-static inline bool arch_get_random_seed_long(unsigned long *v)
+static inline bool __must_check arch_get_random_seed_long(unsigned long *v)
 {
 	return static_cpu_has(X86_FEATURE_RDSEED) ? rdseed_long(v) : false;
 }
 
-static inline bool arch_get_random_seed_int(unsigned int *v)
+static inline bool __must_check arch_get_random_seed_int(unsigned int *v)
 {
 	return static_cpu_has(X86_FEATURE_RDSEED) ? rdseed_int(v) : false;
 }
-- 
2.20.1


WARNING: multiple messages have this Message-ID
From: Mark Brown <broonie@kernel.org>
To: linux-arch@vger.kernel.org
Cc: linux-s390@vger.kernel.org, herbert@gondor.apana.org.au,
	x86@kernel.org, Richard Henderson <richard.henderson@linaro.org>,
	Mark Brown <broonie@kernel.org>, Borislav Petkov <bp@alien8.de>,
	linux-crypto@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	Ard Biesheuvel <ardb@kernel.org>,
	linux-arm-kernel@lists.infradead.org,
	Richard Henderson <rth@twiddle.net>
Subject: [PATCH v2 07/10] x86: Mark archrandom.h functions __must_check
Date: Fri, 10 Jan 2020 14:54:19 +0000	[thread overview]
Message-ID: <20200110145422.49141-8-broonie@kernel.org> (raw)
In-Reply-To: <20200110145422.49141-1-broonie@kernel.org>

From: Richard Henderson <richard.henderson@linaro.org>

We must not use the pointer output without validating the
success of the random read.

Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 arch/x86/include/asm/archrandom.h | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/arch/x86/include/asm/archrandom.h b/arch/x86/include/asm/archrandom.h
index feb59461046c..7a4bb1bd4bdb 100644
--- a/arch/x86/include/asm/archrandom.h
+++ b/arch/x86/include/asm/archrandom.h
@@ -27,7 +27,7 @@
 
 /* Unconditional execution of RDRAND and RDSEED */
 
-static inline bool rdrand_long(unsigned long *v)
+static inline bool __must_check rdrand_long(unsigned long *v)
 {
 	bool ok;
 	unsigned int retry = RDRAND_RETRY_LOOPS;
@@ -41,7 +41,7 @@ static inline bool rdrand_long(unsigned long *v)
 	return false;
 }
 
-static inline bool rdrand_int(unsigned int *v)
+static inline bool __must_check rdrand_int(unsigned int *v)
 {
 	bool ok;
 	unsigned int retry = RDRAND_RETRY_LOOPS;
@@ -55,7 +55,7 @@ static inline bool rdrand_int(unsigned int *v)
 	return false;
 }
 
-static inline bool rdseed_long(unsigned long *v)
+static inline bool __must_check rdseed_long(unsigned long *v)
 {
 	bool ok;
 	asm volatile(RDSEED_LONG
@@ -64,7 +64,7 @@ static inline bool rdseed_long(unsigned long *v)
 	return ok;
 }
 
-static inline bool rdseed_int(unsigned int *v)
+static inline bool __must_check rdseed_int(unsigned int *v)
 {
 	bool ok;
 	asm volatile(RDSEED_INT
@@ -80,22 +80,22 @@ static inline bool rdseed_int(unsigned int *v)
  */
 #ifdef CONFIG_ARCH_RANDOM
 
-static inline bool arch_get_random_long(unsigned long *v)
+static inline bool __must_check arch_get_random_long(unsigned long *v)
 {
 	return static_cpu_has(X86_FEATURE_RDRAND) ? rdrand_long(v) : false;
 }
 
-static inline bool arch_get_random_int(unsigned int *v)
+static inline bool __must_check arch_get_random_int(unsigned int *v)
 {
 	return static_cpu_has(X86_FEATURE_RDRAND) ? rdrand_int(v) : false;
 }
 
-static inline bool arch_get_random_seed_long(unsigned long *v)
+static inline bool __must_check arch_get_random_seed_long(unsigned long *v)
 {
 	return static_cpu_has(X86_FEATURE_RDSEED) ? rdseed_long(v) : false;
 }
 
-static inline bool arch_get_random_seed_int(unsigned int *v)
+static inline bool __must_check arch_get_random_seed_int(unsigned int *v)
 {
 	return static_cpu_has(X86_FEATURE_RDSEED) ? rdseed_int(v) : false;
 }
-- 
2.20.1


WARNING: multiple messages have this Message-ID
From: Mark Brown <broonie@kernel.org>
To: linux-arch@vger.kernel.org
Cc: linux-s390@vger.kernel.org, herbert@gondor.apana.org.au,
	x86@kernel.org, Richard Henderson <richard.henderson@linaro.org>,
	Mark Brown <broonie@kernel.org>, Borislav Petkov <bp@alien8.de>,
	linux-crypto@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	Ard Biesheuvel <ardb@kernel.org>,
	linux-arm-kernel@lists.infradead.org,
	Richard Henderson <rth@twiddle.net>
Subject: [PATCH v2 07/10] x86: Mark archrandom.h functions __must_check
Date: Fri, 10 Jan 2020 14:54:19 +0000	[thread overview]
Message-ID: <20200110145422.49141-8-broonie@kernel.org> (raw)
In-Reply-To: <20200110145422.49141-1-broonie@kernel.org>

From: Richard Henderson <richard.henderson@linaro.org>

We must not use the pointer output without validating the
success of the random read.

Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 arch/x86/include/asm/archrandom.h | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/arch/x86/include/asm/archrandom.h b/arch/x86/include/asm/archrandom.h
index feb59461046c..7a4bb1bd4bdb 100644
--- a/arch/x86/include/asm/archrandom.h
+++ b/arch/x86/include/asm/archrandom.h
@@ -27,7 +27,7 @@
 
 /* Unconditional execution of RDRAND and RDSEED */
 
-static inline bool rdrand_long(unsigned long *v)
+static inline bool __must_check rdrand_long(unsigned long *v)
 {
 	bool ok;
 	unsigned int retry = RDRAND_RETRY_LOOPS;
@@ -41,7 +41,7 @@ static inline bool rdrand_long(unsigned long *v)
 	return false;
 }
 
-static inline bool rdrand_int(unsigned int *v)
+static inline bool __must_check rdrand_int(unsigned int *v)
 {
 	bool ok;
 	unsigned int retry = RDRAND_RETRY_LOOPS;
@@ -55,7 +55,7 @@ static inline bool rdrand_int(unsigned int *v)
 	return false;
 }
 
-static inline bool rdseed_long(unsigned long *v)
+static inline bool __must_check rdseed_long(unsigned long *v)
 {
 	bool ok;
 	asm volatile(RDSEED_LONG
@@ -64,7 +64,7 @@ static inline bool rdseed_long(unsigned long *v)
 	return ok;
 }
 
-static inline bool rdseed_int(unsigned int *v)
+static inline bool __must_check rdseed_int(unsigned int *v)
 {
 	bool ok;
 	asm volatile(RDSEED_INT
@@ -80,22 +80,22 @@ static inline bool rdseed_int(unsigned int *v)
  */
 #ifdef CONFIG_ARCH_RANDOM
 
-static inline bool arch_get_random_long(unsigned long *v)
+static inline bool __must_check arch_get_random_long(unsigned long *v)
 {
 	return static_cpu_has(X86_FEATURE_RDRAND) ? rdrand_long(v) : false;
 }
 
-static inline bool arch_get_random_int(unsigned int *v)
+static inline bool __must_check arch_get_random_int(unsigned int *v)
 {
 	return static_cpu_has(X86_FEATURE_RDRAND) ? rdrand_int(v) : false;
 }
 
-static inline bool arch_get_random_seed_long(unsigned long *v)
+static inline bool __must_check arch_get_random_seed_long(unsigned long *v)
 {
 	return static_cpu_has(X86_FEATURE_RDSEED) ? rdseed_long(v) : false;
 }
 
-static inline bool arch_get_random_seed_int(unsigned int *v)
+static inline bool __must_check arch_get_random_seed_int(unsigned int *v)
 {
 	return static_cpu_has(X86_FEATURE_RDSEED) ? rdseed_int(v) : false;
 }
-- 
2.20.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2020-01-10 14:54 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-10 14:54 [PATCH v2 00/10] Impveovements for random.h/archrandom.h Mark Brown
2020-01-10 14:54 ` Mark Brown
2020-01-10 14:54 ` Mark Brown
2020-01-10 14:54 ` [PATCH v2 01/10] x86: Remove arch_has_random, arch_has_random_seed Mark Brown
2020-01-10 14:54   ` Mark Brown
2020-01-10 14:54   ` Mark Brown
2020-01-10 14:54 ` [PATCH v2 02/10] powerpc: " Mark Brown
2020-01-10 14:54   ` Mark Brown
2020-01-10 14:54   ` Mark Brown
2020-01-10 14:54 ` [PATCH v2 03/10] s390: " Mark Brown
2020-01-10 14:54   ` Mark Brown
2020-01-10 14:54   ` Mark Brown
2020-01-10 14:54 ` [PATCH v2 04/10] linux/random.h: " Mark Brown
2020-01-10 14:54   ` Mark Brown
2020-01-10 14:54   ` Mark Brown
2020-01-10 14:54 ` [PATCH v2 05/10] linux/random.h: Use false with bool Mark Brown
2020-01-10 14:54   ` Mark Brown
2020-01-10 14:54   ` Mark Brown
2020-01-10 14:54 ` [PATCH v2 06/10] linux/random.h: Mark CONFIG_ARCH_RANDOM functions __must_check Mark Brown
2020-01-10 14:54   ` Mark Brown
2020-01-10 14:54   ` Mark Brown
2020-01-10 14:54 ` Mark Brown [this message]
2020-01-10 14:54   ` [PATCH v2 07/10] x86: Mark archrandom.h " Mark Brown
2020-01-10 14:54   ` Mark Brown
2020-01-10 14:54 ` [PATCH v2 08/10] powerpc: Use bool in archrandom.h Mark Brown
2020-01-10 14:54   ` Mark Brown
2020-01-10 14:54   ` Mark Brown
2020-01-10 14:54 ` [PATCH v2 09/10] powerpc: Mark archrandom.h functions __must_check Mark Brown
2020-01-10 14:54   ` Mark Brown
2020-01-10 14:54   ` Mark Brown
2020-01-10 14:54 ` [PATCH v2 10/10] s390x: " Mark Brown
2020-01-10 14:54   ` Mark Brown
2020-01-10 14:54   ` Mark Brown
2020-01-10 15:51 ` [PATCH v2 00/10] Impveovements for random.h/archrandom.h Borislav Petkov
2020-01-10 15:51   ` Borislav Petkov
2020-01-10 15:51   ` Borislav Petkov
2020-01-10 17:05   ` Theodore Y. Ts'o
2020-01-10 17:05     ` Theodore Y. Ts'o
2020-01-10 17:05     ` Theodore Y. Ts'o
2020-01-20 17:26     ` Mark Brown
2020-01-20 17:26       ` Mark Brown
2020-01-20 17:26       ` Mark Brown
2020-01-20 17:59       ` Borislav Petkov
2020-01-20 17:59         ` Borislav Petkov
2020-01-20 17:59         ` Borislav Petkov
2020-01-25 17:46         ` Theodore Y. Ts'o
2020-01-25 17:46           ` Theodore Y. Ts'o
2020-01-25 17:46           ` Theodore Y. Ts'o
  -- strict thread matches above, loose matches on Subject: below --
2019-11-06 14:12 [PATCH v2 00/10] Improvements " Richard Henderson
2019-11-06 14:13 ` [PATCH v2 07/10] x86: Mark archrandom.h functions __must_check Richard Henderson
2019-11-06 14:13   ` Richard Henderson
2019-11-06 14:13   ` Richard Henderson

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=20200110145422.49141-8-broonie@kernel.org \
    --to=broonie@kernel.org \
    --cc=ardb@kernel.org \
    --cc=bp@alien8.de \
    --cc=herbert@gondor.apana.org.au \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=richard.henderson@linaro.org \
    --cc=rth@twiddle.net \
    --cc=x86@kernel.org \
    /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.