mirror of https://gitee.com/openkylin/linux.git
x86: Mark archrandom.h functions __must_check
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> Link: https://lore.kernel.org/r/20200110145422.49141-8-broonie@kernel.org Signed-off-by: Theodore Ts'o <tytso@mit.edu>
This commit is contained in:
parent
904caa6413
commit
1640a7b9f4
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue