The only remaining usage of get_cycles() is to provide random_get_entropy().
Switch ARM over to the new scheme of selecting ARCH_HAS_RANDOM_ENTROPY and providing random_get_entropy() in asm/random.h. Remove asm/timex.h as it has no functionality anymore. Signed-off-by: Thomas Gleixner <[email protected]> Cc: Russell King <[email protected]> Cc: [email protected] --- arch/arm/Kconfig | 1 + arch/arm/include/asm/random.h | 14 ++++++++++++++ arch/arm/include/asm/timex.h | 18 ------------------ arch/arm/lib/delay.c | 4 ++-- 4 files changed, 17 insertions(+), 20 deletions(-) --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -22,6 +22,7 @@ config ARM select ARCH_HAS_MEMBARRIER_SYNC_CORE select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE select ARCH_HAS_PTE_SPECIAL if ARM_LPAE + select ARCH_HAS_RANDOM_ENTROPY select ARCH_HAS_SETUP_DMA_OPS select ARCH_HAS_SET_MEMORY select ARCH_STACKWALK --- /dev/null +++ b/arch/arm/include/asm/random.h @@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +#ifndef _ASMARM_RANDOM_H +#define _ASMARM_RANDOM_H + +bool delay_read_timer(unsigned long *t); + +static inline unsigned long random_get_entropy(void) +{ + unsigned long t; + + return delay_read_timer(&t) ? t : random_get_entropy_fallback(); +} + +#endif --- a/arch/arm/include/asm/timex.h +++ /dev/null @@ -1,18 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* - * arch/arm/include/asm/timex.h - * - * Copyright (C) 1997,1998 Russell King - * - * Architecture Specific TIME specifications - */ -#ifndef _ASMARM_TIMEX_H -#define _ASMARM_TIMEX_H - -// Temporary workaround -bool delay_read_timer(unsigned long *t); - -#define get_cycles() ({ cycles_t c; delay_read_timer(&c) ? 0 : c; }) -#define random_get_entropy() (((unsigned long)get_cycles()) ?: random_get_entropy_fallback()) - -#endif --- a/arch/arm/lib/delay.c +++ b/arch/arm/lib/delay.c @@ -42,9 +42,9 @@ static inline u64 cyc_to_ns(u64 cyc, u32 static void __timer_delay(unsigned long cycles) { - cycles_t start = get_cycles(); + cycles_t start = delay_timer->read_current_timer(); - while ((get_cycles() - start) < cycles) + while ((delay_timer->read_current_timer() - start) < cycles) cpu_relax(); }

