diff options
| author | Nathan Chancellor <nathan@kernel.org> | 2026-08-19 14:43:21 -0700 |
|---|---|---|
| committer | Thomas Gleixner <tglx@kernel.org> | 2026-08-20 11:44:08 +0200 |
| commit | e1e3a0ab69c64eedaf53dce9306f8a090bf038f0 (patch) | |
| tree | 01e4bdf35f56f6a34aab3e758474fb1b7b276659 /arch | |
| parent | 59e6295fac26b8e85c1ea859cdd89fa1e47519d7 (diff) | |
| download | linux-stable-e1e3a0ab69c64eedaf53dce9306f8a090bf038f0.tar.gz linux-stable-e1e3a0ab69c64eedaf53dce9306f8a090bf038f0.zip | |
ARM: Fix get_cycles() after delay_read_timer() conversion
After commit dfc256dac54c ("calibrate: Rework delay timer calibration"),
certain ARM configurations (such as multi_v5_defconfig) hang during
boot. The use of read_current_timer() in arch/arm's get_cycles() was
improperly converted to delay_read_timer(), resulting in get_cycles()
returning 0 even when the timer has been read or an uninitialized stack
value when delay_read_timer() returns false.
Flip the branches of the ternary condition to fix get_cycles().
Fixes: dfc256dac54c ("calibrate: Rework delay timer calibration")
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Reviewed-by: Jinjie Ruan <ruanjinjie@huawei.com>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Link: https://patch.msgid.link/20260819-fix-arm-get_cycles-v1-1-208bf07ac540@kernel.org
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/arm/include/asm/timex.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm/include/asm/timex.h b/arch/arm/include/asm/timex.h index 94e40c19c..4d31eab9d 100644 --- a/arch/arm/include/asm/timex.h +++ b/arch/arm/include/asm/timex.h @@ -13,7 +13,7 @@ typedef unsigned long cycles_t; // Temporary workaround until timex.h is cleaned up bool delay_read_timer(unsigned long *t); -#define get_cycles() ({ cycles_t c; delay_read_timer(&c) ? 0 : c; }) +#define get_cycles() ({ cycles_t c; delay_read_timer(&c) ? c : 0; }) #define random_get_entropy() (((unsigned long)get_cycles()) ?: random_get_entropy_fallback()) #endif |
