The only remaining non-architecture usage of get_cycles() is to provide random_get_entropy().
Switch loongarch over to the new scheme of selecting ARCH_HAS_RANDOM_ENTROPY and providing random_get_entropy() in asm/random.h. Add 'asm/timex.h' includes to the relevant files, so the global include can be removed once all architectures are converted over. Signed-off-by: Thomas Gleixner <[email protected]> Cc: Huacai Chen <[email protected]> Cc: [email protected] --- arch/loongarch/Kconfig | 1 + arch/loongarch/include/asm/random.h | 15 +++++++++++++++ arch/loongarch/kernel/syscall.c | 1 + arch/loongarch/lib/delay.c | 2 +- 4 files changed, 18 insertions(+), 1 deletion(-) --- a/arch/loongarch/Kconfig +++ b/arch/loongarch/Kconfig @@ -26,6 +26,7 @@ config LOONGARCH select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE select ARCH_HAS_PREEMPT_LAZY select ARCH_HAS_PTE_SPECIAL + select ARCH_HAS_RANDOM_ENTROPY select ARCH_HAS_SET_MEMORY select ARCH_HAS_SET_DIRECT_MAP select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST --- /dev/null +++ b/arch/loongarch/include/asm/random.h @@ -0,0 +1,15 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright (C) 2020-2022 Loongson Technology Corporation Limited + */ +#ifndef _ASM_RANDOM_H +#define _ASM_RANDOM_H + +#include <asm/timex.h> + +static inline unsigned long random_get_entropy(void) +{ + return get_cycles(); +} + +#endif /* _ASM_RANDOM_H */ --- a/arch/loongarch/kernel/syscall.c +++ b/arch/loongarch/kernel/syscall.c @@ -19,6 +19,7 @@ #include <asm/loongarch.h> #include <asm/signal.h> #include <asm/switch_to.h> +#include <asm/timex.h> #include <asm-generic/syscalls.h> #undef __SYSCALL --- a/arch/loongarch/lib/delay.c +++ b/arch/loongarch/lib/delay.c @@ -5,9 +5,9 @@ #include <linux/delay.h> #include <linux/export.h> #include <linux/smp.h> -#include <linux/timex.h> #include <asm/processor.h> +#include <asm/timex.h> void __delay(unsigned long cycles) {

