Commit 1640a7b9 authored by Richard Henderson's avatar Richard Henderson Committed by Theodore Ts'o

x86: Mark archrandom.h functions __must_check

We must not use the pointer output without validating the
success of the random read.
Reviewed-by: default avatarArd Biesheuvel <ardb@kernel.org>
Signed-off-by: default avatarRichard Henderson <rth@twiddle.net>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20200110145422.49141-8-broonie@kernel.orgSigned-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
parent 904caa64
......@@ -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;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment